我真不明白你为什么for循环对Multimap之的键集大小做,然后增加计数器检查个性化......
这就是为什么我假设你提到Multimap
,因为你想从Multimap#keys()
获得Multiset
。在这里,你有例子代码:
final class MultisetFromMultimap {
public static void main(String[] args) {
Multimap<Integer, Integer> team = ImmutableMultimap.of(
1, 1,
1, 2,
2, 22,
2, 33,
3, 0);
test(team, 2, 1);
test(ImmutableMultimap.of(42, 42), 42, 1);
test(ImmutableMultimap.<Integer, Integer>of(), 0, 1);
}
private static void test(Multimap<Integer, Integer> team,
Integer test1, Integer test2) {
System.out.println("multimap: " + team);
Multiset<Integer> points = team.keys();
System.out.println("multiset: " + points);
boolean ad1 = points.count(test1) > 1; // point 1
boolean ad2 = points.count(test1) == points.count(test2); // point 2
boolean ad3 = points.size() == 1; // point 3
boolean ad4 = points.isEmpty(); // point 4
System.out.println("answers: " + Arrays.asList(ad1, ad2, ad3, ad4));
}
}
这将产生以下输出:
multimap: {1=[1, 2], 2=[22, 33], 3=[0]}
multiset: [1 x 2, 2 x 2, 3]
answers: [true, true, false, false]
multimap: {42=[42]}
multiset: [42]
answers: [false, false, true, false]
multimap: {}
multiset: []
answers: [false, true, false, true]