zoukankan      html  css  js  c++  java
  • Guava中的集合

    需要包:guava.jar

    1.Collections(对集合的扩展)

      主要包括不可变集合,多值Map,Table表和集合工具类

      1_1.不可变集合(immutable):ImmutableList,ImmutableMap,ImmutableSet,ImmutableSoredtMap,ImmutableSortedSet

        ImmutableList:可以存放相同的值

        ImmutableMap:存放键值对

        ImmutableSet:存放的是唯一的值

        ImmutableList,ImmutableMap,ImmutableSet调用的是of()方法

        ImmutableSoredtMap,ImmutableSortedSet会进行排序,调用的是copyOf() 

    public static void main(String[] args) {
            ImmutableList<String> l =ImmutableList.of("张三","李四","张三") ;
            ImmutableMap<String, String> m = ImmutableMap.of("name", "张三", "age","20","sex","男") ;
            ImmutableSet<String> s = ImmutableSet.of("张三","李四","张三") ;
            Map<String,String> map = new HashMap<String,String>() ;
            map.put("name", "张三") ;
            map.put("age", "20") ;
            map.put("sex", "男") ;
            ImmutableSortedMap<String, String> ss = ImmutableSortedMap.copyOf(map) ;
            Set<Integer> set = new TreeSet<Integer>() ;
            set.add(1) ;
            set.add(9) ;
            set.add(4) ;
            ImmutableSet<Integer> mi = ImmutableSet.copyOf(set) ;
            System.out.println("---------"+l);
            System.out.println("---------"+m);
            System.out.println("---------"+s);
            System.out.println("---------"+ss);
            System.out.println("---------"+mi);
            结果: ---------[张三, 李四, 张三]
                 ---------{name=张三, age=20, sex=男}
                 ---------[张三, 李四]
                 ---------{age=20, name=张三, sex=男}
                 ---------[1, 4, 9]
        }

       1_2.多值Map,MultiMap

        在普通Map中,如果两个键相等,则会覆盖一个,而有时候,比如保存名字的时候,名字可能重复,这时候就可以用多值Map,MultiMap

    public static void main(String[] args) {
            Multimap<String, String> names = ArrayListMultimap.create() ;
            names.put("name", "张三") ;
            names.put("name", "张三") ;
            System.out.println("----------"+names);
            结果:----------{name=[张三, 张三]}
        }

      1_3.Table表

        通过两个点确定一个值,如通过地图的经度、纬度,确定一个地方

    public static void main(String[] args) {
            Table<Double, Double, String> area = HashBasedTable.create() ;
            area.put(21.3, 154.9, "重庆XXX广场") ;
            System.out.println("-------------"+area.get(21.3, 154.9));
            结果:-------------重庆XXX广场
        }

      1_4.集合工具类,Sets,Maps,Lists

        Maps的过滤 

    public static void main(String[] args) {
            Map<String,Integer> map = new HashMap<String,Integer>() ;
            map.put("张三", 20) ;
            map.put("李四", 23) ;
            map.put("王五", 18) ;
            Map<String,Integer> m = Maps.filterValues(map, new Predicate<Integer>() {
                @Override
                public boolean apply(Integer age) {
                    return age<23 ;
                }
            }) ;
            
            System.out.println("--------------"+m);
            结果:--------------{张三=20, 王五=18}
        }

        

        

  • 相关阅读:
    反射(8)程序集反射 Type 类
    反射(5)CLR 运行时探测程序集引用的步骤
    反射(1)程序集基础知识
    csc.exe(C# 编译器)
    证书(1)数字签名基础知识
    反射(7)动态程序集加载Load方法
    SignTool.exe(签名工具)
    反射(3)程序集加载 Assembly类
    关于卡巴斯基安全免疫区随笔
    文本提取工具 TextHelper
  • 原文地址:https://www.cnblogs.com/-scl/p/7676666.html
Copyright © 2011-2022 走看看