1 回答

TA貢獻1712條經(jīng)驗 獲得超3個贊
是的,您可以使用它contains()來查看像給定Map對象這樣的對象是否在Set您擁有的內(nèi)部。該contains()方法將使用equals()方法進行比較的對象,和equals()的方法HashMap被定義如下:
比較指定對象與此映射是否相等。返回true如果給定對象也是一個映射并且兩個映射表示相同的映射。更正式地說,兩個映射m1和m2表示相同的映射,如果m1.entrySet().equals(m2.entrySet())。這確保了 equals 方法可以在Map接口的不同實現(xiàn)中正常工作。
請參閱以下示例源代碼:
import java.util.Map;
import java.util.Set;
import java.util.HashMap;
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
Set<Map<Integer, Integer>> sets = new HashSet<Map<Integer, Integer>>();
Map<Integer, Integer> m1 = new HashMap<Integer, Integer>();
m1.put(1, 4);
m1.put(2, 3);
sets.add(m1);
Map<Integer, Integer> m2 = new HashMap<Integer, Integer>();
m2.put(1, 4);
m2.put(6, 7);
sets.add(m2);
System.out.println(sets);
Map<Integer, Integer> m3 = new HashMap<Integer, Integer>();
System.out.println(m3+" | "+sets.contains(m3));
m3.put(6, 7);
System.out.println(m3+" | "+sets.contains(m3));
m3.put(1, 4);
System.out.println(m3+" | "+sets.contains(m3));
}
}
這將生成以下輸出:
[{1=4, 2=3}, {1=4, 6=7}]
{} | false
{6=7} | false
{1=4, 6=7} | true
您會在最后看到該contains()方法將返回,true因為它與Map您的Set.
添加回答
舉報