可重复set和map,便于计数
可变集合接口 | 属于JDK还是Guava | 不可变版本 |
Collection | JDK | ImmutableCollection |
List | JDK | ImmutableList |
Set | JDK | ImmutableSet |
SortedSet/NavigableSet | JDK | ImmutableSortedSet |
Map | JDK | ImmutableMap |
SortedMap | JDK | ImmutableSortedMap |
Multiset | Guava | ImmutableMultiset |
SortedMultiset | Guava | ImmutableSortedMultiset |
Multimap | Guava | ImmutableMultimap |
ListMultimap | Guava | ImmutableListMultimap |
SetMultimap | Guava | ImmutableSetMultimap |
BiMap | Guava | ImmutableBiMap |
ClassToInstanceMap | Guava | ImmutableClassToInstanceMap |
Table | Guava | ImmutableTable |
Multiset<String> m = HashMultiset.create(); m.add("a"); m.add("a"); m.add("a"); m.add("b"); m.add("b"); m.add("c"); m.add("d",5); Set<String> set = m.elementSet(); Set<Multiset.Entry<String>> entrys = m.entrySet(); System.out.println(set); entrys.forEach(entry-> System.out.println(entry.getElement()+"-->"+entry.getCount())); m.remove("a"); System.out.println("a-->"+m.count("a")); m.setCount("a",100); System.out.println("a-->"+m.count("a")); m.setCount("a",10,1); System.out.println("a-->"+m.count("a")); m.setCount("a",100,1); System.out.println("a-->"+m.count("a"));
结果:
[a, b, c, d]
a-->3
b-->2
c-->1
d-->5
a-->2
a-->100
a-->100
a-->1