【guava】基础用法

依赖

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>29.0-jre</version>
    </dependency>

不可变集合与对象

优点:1、线程安全 2、可用作常熟

ImmutableXXX

创建方式:1、copeOf 2、of 3、Builder

代码:

public static void main(String[] args) {
        HashSet<String> set = new HashSet<String>();
        set.add("a");
        set.add("b");
        set.add("c");
        //Immutablexxx collection set list map sortedMap 等等
        //三种方法:copyOf of builder
        ImmutableSet<String> set2 = ImmutableSet.copyOf(set);
        ImmutableSet<String> set3 = ImmutableSet.of("d", "f", "g");
        ImmutableSet.Builder<Object> add = ImmutableSet.builder().add("a", "d", "ddd");

        HashMap<Integer, String> map = new HashMap<Integer, String>();
        map.put(1,"姓名");
        map.put(2,"年龄");
        map.put(3,"学院");
        ImmutableMap<Integer, String> immutableMap = ImmutableMap.copyOf(map);

        ImmutableMap.Builder<Integer, String> map2 = ImmutableMap.<Integer, String>builder().put(1, "姓名").put(2, "年龄").put(3, "学院");

        System.out.println("key=2,结果是:"+immutableMap.get(2));
}

guava对应jdk各种不可变版本

 Multiset 可重复集合和Multimap 多重映射

Multiset相当于内部做了一个map,multimap相当于

代码:

    public static void main(String[] args) {

        //multiset 内部使用一个 HashMap 来维护
        HashMultiset<String> setMulti = HashMultiset.create();
        setMulti.add("1");
        setMulti.add("1");
        System.out.println("1的数量有:"+setMulti.count("1"));
    }

multimap的多种实现:有序、无序

 BiMap 双向映射

Map<String, Integer> nameToId = Maps.newHashMap();
Map<Integer, String> idToName = Maps.newHashMap();
 
nameToId.put("Bob", 42);
idToName.put(42, "Bob");

Stopwatch秒表基本用法

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(); // 多秒表才用的到

猜你喜欢

转载自blog.csdn.net/kanseu/article/details/124450930