18/03/2021, 09:40

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

Bài tập Java - Liệt kê các phần tử xuất hiện trong mảng đúng 2 lần Nội dung chính Java - Liệt kê số lần xuất hiện của các phần tử trong một mảng Lời giải 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 ...

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

Nội dung chính

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

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


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.
Bài tập Java - Liệt kê các phần tử xuất hiện trong mảng đúng 2 lần
0