Bài 66: Bài tập Java - Liệt kê các phần tử xuất hiện trong mảng đúng 2 lần

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

Bài tập Java - Liệt kê các phần tử xuất hiện trong mảng đúng 2 lần

Đề bài: Nhập một mảng số nguyên a0, a1, a2, …, an-1. Liệt kê các phần tử xuất hiện trong mảng đúng 2 lần.


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: BaiTap20.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

57

58

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 BaiTap20 {

    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.println("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 1 lần: ");

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

            if (map.get(key) == 2) {

                System.out.print(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: 8
 Nhập các phần tử của mảng: 
 a[0] = 1
 a[1] = 3
 a[2] = 4
 a[3] = 6
 a[4] = 5
 a[5] = 3
 a[6] = 1
 a[7] = 1
 Các phần tử xuất hiện 2 lần: 3 

Nguồn tin: viettuts