CodeGym /Blog Java /Ngẫu nhiên /Cách sử dụng phương thức keySet trong java.util.Map

Cách sử dụng phương thức keySet trong java.util.Map

Xuất bản trong nhóm
Nếu bạn cần lấy tất cả các khóa mà Bản đồ của bạn chứa, bạn có thể sử dụng phương thức java.util.HashMap.keySet() thực sự tiện dụng . Trong bài viết này, chúng tôi sẽ giải thích cách thức hoạt động của nó. Như bạn đã biết, lớp HashMap triển khai giao diện Bản đồ , vì vậy trong các ví dụ chúng ta sẽ sử dụng phương thức keySet() của HashMap .

Chữ ký phương thức HashMap keySet() và nguyên tắc hoạt động

Phương thức Set<K> keySet() trả về chế độ xem Đặt của các khóa được chứa trong bản đồ này. Tính năng của bộ sưu tập Set này, giữ các khóa, là không thể có các phần tử trùng lặp trong đó. Bộ được hỗ trợ bởi bản đồ. Điều đó có nghĩa là nếu một cái gì đó đã được thay đổi trong bản đồ, nó sẽ được phản ánh trong tập hợp và ngược lại. Ví dụ: bạn có thể xóa các mục khỏi bộ này và các khóa cũng như giá trị tương ứng của chúng sẽ tự động bị xóa khỏi bản đồ, nhưng bạn không thể thêm các mục mới vào đó.

ví dụ về keySet HashMap()

Hãy tạo một HashMap với tên của những người bạn của chúng ta và các khóa kỹ thuật số của họ, sau đó in ra Tập hợp các khóa bằng cách sử dụng phương thức KeySet() của HashMap .

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class KeySetDemo {
   public static void main(String[] args) {
       Map<Integer, String> myHashMap = new HashMap<>();
       myHashMap.put(1, "John");
       myHashMap.put(2, "Ivy");
       myHashMap.put(3, "Ricky");
       myHashMap.put(4, "Andrew");
       myHashMap.put(5, "Alex");

       //using map.keyset() method and print out the result
       Set<Integer> myKeySet = myHashMap.keySet();
       System.out.println("myKeySet of the map: "+myKeySet);
Đầu ra là:
các phím của bản đồ: [1, 2, 3, 4, 5]
Bên cạnh phương thức java.util.HashMap.keySet() trong Java còn có một phương thức entrySet() , nó cũng trả về một Set , nhưng tập hợp này chứa các cặp khóa-giá trị. Đây là một ví dụ với cả hai phương thức java.util.HashMap.keySet()java.util.HashMap.entrySet() :

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class KeySetDemo {
   public static void main(String[] args) {
       Map<Integer, String> myHashMap = new HashMap<>();
       myHashMap.put(1, "John");
       myHashMap.put(2, "Ivy");
       myHashMap.put(3, "Ricky");
       myHashMap.put(4, "Andrew");
       myHashMap.put(5, "Alex");

       //using map.keyset() method and print out the result
       Set<Integer> myKeySet = myHashMap.keySet();
       System.out.println("keys of the map: " + myKeySet);
       System.out.println("keys and values of the map: " );
       for( Map.Entry e : myHashMap.entrySet()){
           System.out.println(e.getKey() + " : " + e.getValue());
       }
   }
}
Đây là đầu ra:
các khóa của bản đồ: [1, 2, 3, 4, 5] các khóa và giá trị của bản đồ: 1 : John 2 : Ivy 3 : Ricky 4 : Andrew 5 : Alex
Bây giờ, hãy thử xóa một phần tử khỏi keySet đảm bảo rằng nó ảnh hưởng đến HashMap ban đầu của chúng ta .

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class KeySetDemo {
   public static void main(String[] args) {
       Map<Integer, String> myHashMap = new HashMap<>();
       myHashMap.put(1, "John");
       myHashMap.put(2, "Ivy");
       myHashMap.put(3, "Ricky");
       myHashMap.put(4, "Andrew");
       myHashMap.put(5, "Alex");

       //using map.keyset() method and print out the result
       Set<Integer> myKeySet = myHashMap.keySet();
       System.out.println("keys of the map: " + myKeySet);
      myKeySet.remove(4);
       System.out.println("myHashMap after removing an element from myKeySet: " + myHashMap);
       System.out.println("keys of the map: " + myKeySet);
   }
}
Đầu ra là:
các phím của bản đồ: [1, 2, 3, 4, 5] myHashMap sau khi xóa một phần tử khỏi myKeySet: {1=John, 2=Ivy, 3=Ricky, 5=Alex} các phím của bản đồ: [1, 2 , 3, 5]
Như bạn có thể thấy, chúng tôi đã xóa khóa “4” khỏi Set và điều đó dẫn đến việc xóa một cặp “4-Alex” khỏi HashMap của chúng tôi . Bây giờ, hãy thử thêm một khóa vào keySet() :

import java.util.HashMap;
       import java.util.Map;
       import java.util.Set;

public class KeySetDemo {
   public static void main(String[] args) {
       Map<Integer, String> myHashMap = new HashMap<>();
       myHashMap.put(1, "John");
       myHashMap.put(2, "Ivy");
       myHashMap.put(3, "Ricky");
       myHashMap.put(4, "Andrew");
       myHashMap.put(5, "Alex");

       //using map.keyset() method and print out the result
       Set<Integer> myKeySet = myHashMap.keySet();
       System.out.println("keys of the map: " + myKeySet);
       myKeySet.add(7);

   }
}
Trong trường hợp này, chúng tôi sẽ nhận được một Ngoại lệ, vì bộ khóa của chúng tôi được kết nối với hashMap của chúng tôi :
các khóa của bản đồ: [1, 2, 3, 4, 5] Ngoại lệ trong luồng "chính" java.lang.UnsupportedOperationException tại java.base/java.util.AbstractCollection.add(AbstractCollection.java:251) tại KeySetDemo.main (KeySetDemo.java:20) Quá trình kết thúc với mã thoát 1
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION