網頁

2018/6/26

Java Set可以做為Map的key嗎?

可以,但注意不要改變Set物件的內容。

見以下範例,當改變Set的內容時就無法取到值了。

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

public class Main {

    public static void main(String[] args) {
        Set<Integer> set = new HashSet<>();
        set.add(1);
        set.add(2);
        set.add(3);
        
        Map<Set<Integer>, String> map = new HashMap<>();
        map.put(set, "A");
        
        System.out.println(map.get(set)); // A
        
        set.remove(1);
        System.out.println(map.get(set)); // null
        
        set.add(1);
        System.out.println(map.get(set)); // A
        
    }
    
}

參考:

沒有留言:

張貼留言