如果我有一组被称为字符且包含以下字符的字符(不必是SortedSet)
'c''h''a''r''a''c''t''e''r'
我有一个地图,其中有一组字符作为其键和字符串作为值,例如
map<Set<Character>>,<String> aMap = new HashMap<Set<Character>>,<String>();
aMap.put('a''h''t', "hat");
aMap.put('o''g''d', "dog");
aMap.put('c''r''a''t''e', "react");
我将使用什么javdoc方法来比较字符,因为它们都在Set中,然后使用for循环遍历keySet来比较字符以仅查找由包含在字符中的字符组成的键。第一。所以在上面的例子中,第二个条目('o''g''d',“dog”)将被省略。
感谢
和j
答案 0 :(得分:1)
获得与你的set调用map.keySet()相似的东西
public class SetTest {
public static void main(String[] args) {
Set<Character> set = new HashSet<Character>();
HashMap<Character, String> map = new HashMap<Character, String>();
for (char c : "Character".toCharArray()) {
set.add(c);
map.put(c, "some value");
}
System.out.println( set + " == " + map.keySet() + set.containsAll( map.keySet() ));
set.remove('C');
System.out.println( set + " == " + map.keySet() + set.containsAll( map.keySet() ));
}
}
[e, t, c, r, a, C, h] == [e, t, c, r, a, C, h]true
[e, t, c, r, a, h] == [e, t, c, r, a, C, h]false
答案 1 :(得分:0)
只需使用set.containsAll(...) 示例:如果集合具有相同的大小且firstSet.containsAll(secondSet)为true,则2个集合相同。