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
package vn.kienthuclaptrinh.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 kienthuclaptrinh.net */ 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