不可变集合与对象com.google.guava guava29.0-jre
优点:1、线程安全 2、可用作常熟
ImmutableXXX创建方式:1、copeOf 2、of 3、Builder
代码:
public static void main(String[] args) {
HashSet set = new HashSet();
set.add("a");
set.add("b");
set.add("c");
//Immutablexxx collection set list map sortedMap 等等
//三种方法:copyOf of builder
ImmutableSet set2 = ImmutableSet.copyOf(set);
ImmutableSet set3 = ImmutableSet.of("d", "f", "g");
ImmutableSet.Builder
guava对应jdk各种不可变版本
Multiset 可重复集合和Multimap 多重映射
Multiset相当于内部做了一个map,multimap相当于
代码:
public static void main(String[] args) {
//multiset 内部使用一个 HashMap 来维护
HashMultiset setMulti = HashMultiset.create();
setMulti.add("1");
setMulti.add("1");
System.out.println("1的数量有:"+setMulti.count("1"));
}
multimap的多种实现:有序、无序
BiMap 双向映射MapStopwatch秒表基本用法nameToId = Maps.newHashMap(); Map idToName = Maps.newHashMap(); nameToId.put("Bob", 42); idToName.put(42, "Bob");
new StopWatch(); // new StopWatch("");
watch.start(); // 启动 watch.start("");
watch.stop(); // 暂停
watch.getLastTaskName(); // 上个任务名称
watch.getLastTaskTimeMillis(); // 上个任务毫秒数
watch.getLastTaskInfo(); // 包含3个信息,如: {"taskName":"task0","timeMillis":1000,"timeSeconds":1.0}
watch.getTaskCount(); // 总任务数
watch.getTotalTimeMillis(); // 总毫秒
watch.getTotalTimeSeconds(); // 总秒数
watch.getId(); // 多秒表才用的到



