Bài 67: Bài tập Java - Liệt kê số lần xuất hiện của các phần tử trong một mảng

Ngày đăng: 1/2/2023 1:56:56 PM

Java - Liệt kê số lần xuất hiện của các phần tử trong một mảng

Đề bài: Viết chương trình nhập một mảng số nguyên a0, a1, a2, …, an-1. Liệt kê số lần xuất hiện của các phần tử trong một mảng đã cho.


Lời giải

Trong bài này chúng tôi sử dụng TreeMap để lưu các từ tìm được và số lần xuất hiện của chúng trong mảng đã cho.

File: BaiTap21.java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56     

package vn.viettuts.baitap.array;

 

import java.util.Map;

import java.util.Scanner;

import java.util.TreeMap;

 

/**

 * Chương trình liệt kê số lần xuất hiện các phần tử trong một mảng

 * nhập từ bàn phím trong java.

 *

 * @author viettuts.vn

 */

public class BaiTap21 {

    public static Scanner scanner = new Scanner(System.in);

     

    /**

     * main

     *

     * @param args

     */

    public static void main(String[] args) {

        System.out.print("Nhập số phần tử của mảng: ");

        int n = scanner.nextInt();

        // khởi tạo arr

        int [] arr = new int [n];

        System.out.print("Nhập các phần tử của mảng: ");

        for (int i = 0; i < n; i++) {

            System.out.printf("a[%d] = ", i);

            arr[i] = scanner.nextInt();

        }

        // tìm số lần xuất hiện của các phần tử

        Map<Integer, Integer> map = new TreeMap<Integer, Integer>();

        for (int i = 0; i < n; i++) {

            addElement(map, arr[i]);

        }

        System.out.print("Các phần tử xuất hiện 2 lần: ");

        for (Integer key : map.keySet()) {

            System.out.printf("%d xuất hiện %d lần. ", key, map.get(key));

        }

    }

     

    /**

     * Thêm từ vào map

     *

     * @param wordMap: map chứa các từ và số lần xuất hiện

     * @param sb: từ cần thêm vào wordMap

     */

    public static void addElement(Map<Integer, Integer> map, int element) {

        if (map.containsKey(element)) {

            int count = map.get(element) + 1;

            map.put(element, count);

        } else {

            map.put(element, 1);

        }

    }

}

Kết quả:

 Nhập số phần tử của mảng: 10
 Nhập các phần tử của mảng: 
 a[0] = 1
 a[1] = 2
 a[2] = 3
 a[3] = 4
 a[4] = 1
 a[5] = 2
 a[6] = 2
 a[7] = 5
 a[8] = 6
 a[9] = 7
 Các phần tử xuất hiện 2 lần: 
 1 xuất hiện 2 lần.
 2 xuất hiện 3 lần.
 3 xuất hiện 1 lần.
 4 xuất hiện 1 lần.
 5 xuất hiện 1 lần.
 6 xuất hiện 1 lần.
 7 xuất hiện 1 lần.

Nguồn tin: viettuts