18/03/2021, 09:40

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

Bài tập java - Kiểm tra chuỗi s1 có chứa chuỗi s2 hay không? Nội dung chính Bài tập Java - Liệt kê các phần tử xuất hiện trong mảng đúng 1 lần Lời giải Bài tập Java - Liệt kê các phần tử xuất hiện trong mảng đúng 1 lần Đề bài : Viết chương trình Java ...

Bài tập java - Kiểm tra chuỗi s1 có chứa chuỗi s2 hay không?

Nội dung chính

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

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

Đề bài: Viết chương trình Java 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 1 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: BaiTap19.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 BaiTap19 {
    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) == 1) {
                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: 6
Nhập các phần tử của mảng: 
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 1
a[4] = 2
a[5] = 5
Các phần tử xuất hiện 1 lần: 3 5 
Bài tập java - Kiểm tra chuỗi s1 có chứa chuỗi s2 hay không?
0