• 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}
        }

        

        

  • 相关阅读:
    noip模拟赛 双色球
    noip模拟赛 czy的后宫
    noip模拟赛 经营与开发
    bzoj1297 [SCOI2009]迷路
    Android(java)学习笔记140:常用的对话框
    Java基础知识强化02:import static 和 import
    Java基础知识强化01:short s = 1; s = s + 1;与short s = 1; s += 1;
    GUI编程笔记(java)11:使用Netbeans工具进行GUI编程
    GUI编程笔记(java)10:GUI实现一级菜单
    GUI编程笔记(java)09:GUI控制文本框只能输入数字字符案例
  • 原文地址:https://www.cnblogs.com/-scl/p/7676666.html
Copyright © 2020-2023  润新知