Menu
CoddyTech

Ôn tập: HashSet

Thuộc phần Logic và luồng chương trình trong hành trình Java của Coddy. Bài học 28 trên 59.

challenge icon

Thử thách

Dễ

Tạo một phương thức tên là processHashSet nhận ba đối số:

  1. Một HashSet<Object> (set)
  2. Một Object (input) cần xử lý
  3. Một String (operation) chỉ định thao tác cần thực hiện

Dùng câu lệnh if/else và các phương thức HashSet bạn đã học, phương thức này sẽ trả về một String dựa trên operation:

  • "add": thêm input vào tập hợp. Trả về "Added successfully" nếu phần tử được thêm, hoặc "Element already exists" nếu phần tử đã có trong tập hợp.
  • "remove": xóa input khỏi tập hợp. Trả về "Removed successfully" nếu phần tử được xóa, hoặc "Element not found" nếu phần tử không có trong tập hợp.
  • "find": trả về "Found at index: [index]" nếu tập hợp chứa input (trong đó [index] là vị trí của phần tử theo thứ tự lặp), nếu không thì trả về "Element not found".
  • "count": trả về "Number of elements: [count]", trong đó [count] là số phần tử trong tập hợp (dùng size()).

Trước tiên, hãy kiểm tra các đầu vào:

  • Nếu set là null: trả về "Invalid set".
  • Nếu operation là null hoặc không phải một trong bốn giá trị trên: trả về "Invalid operation".
  • Với thao tác "find", nếu input là null: trả về "Cannot find null".

Tự làm thử

import java.util.HashSet;
import java.util.Scanner;
import java.util.Arrays;

public class Main {
    public static String processHashSet(HashSet<Object> set, Object input, String operation) {
        // Viết code của bạn ở đây
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Đọc tập hợp ban đầu
        String[] items = scanner.nextLine().split(",");
        HashSet<Object> set = new HashSet<>();
        if (!items[0].equals("empty")) {
            for (String item : items) {
                // Thử chuyển thành số nguyên trước
                try {
                    set.add(Integer.parseInt(item));
                } catch (NumberFormatException e) {
                    set.add(item);
                }
            }
        }
        
        // Đọc đầu vào
        String inputStr = scanner.nextLine();
        Object input;
        try {
            input = Integer.parseInt(inputStr);
        } catch (NumberFormatException e) {
            input = inputStr;
        }
        
        // Đọc thao tác
        String operation = scanner.nextLine();
        
        System.out.println(processHashSet(set, input, operation));
    }
}

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Java online