美文网首页
Map / LinkedListMultimap / HashB

Map / LinkedListMultimap / HashB

作者: 龙剑灵 | 来源:发表于2020-03-03 00:37 被阅读0次
            //不可变map
            ImmutableMap<String, String> immutableMap = Maps.uniqueIndex(list, k -> k + "_key");
            System.out.println(immutableMap);//{1_key=1, 2_key=2, 3_key=3, 4_key=4}
    
            //可变map
            Map<String, String> map = Maps.asMap(Sets.newHashSet("1", "2", "3"), k -> k + "_val");
            System.out.println(map);//{1=1_val, 2=2_val, 3=3_val}
    
            Map<String, String> transMap = Maps.transformValues(map, v -> v + "_tran");
            System.out.println(transMap);//{1=1_val_tran, 2=2_val_tran, 3=3_val_tran}
    
            //过滤map的key
            Map<String, String> filterMap = Maps.filterKeys(map, k -> Lists.newArrayList("1", "2").contains(k));
            System.out.println(filterMap);//{1=1_val, 2=2_val}
    
            //Joiner实例是线程安全的
            Joiner.MapJoiner mapJoiner = Joiner.on(",").withKeyValueSeparator("=");
            System.out.println(mapJoiner.join(filterMap));//1=1_val,2=2_val
    
    
            LinkedListMultimap<String, String> multimap = LinkedListMultimap.create();
            multimap.put("a", "111");
            multimap.put("a", "666");
            multimap.put("c", "333");
    
            System.out.println(multimap); //{a=[111, 666], c=[333]}
            System.out.println(multimap.get("a")); // [111, 666]
    
    
        @Test
        public void testMultimaps() {
            Multimap<String, String> multimap = ArrayListMultimap.create();
            multimap.put("1", "1");
            multimap.put("1", "2");
            multimap.put("1", "3");
            multimap.put("5", "25");
    
            System.out.println("multimap: " + multimap);//multimap: {1=[1, 2, 3], 5=[25]}
    
            System.out.println(multimap.keys()); //[1 x 3, 5]
            System.out.println(multimap.keySet()); //[1, 5]
            System.out.println(multimap.get("1")); //[1, 2, 3]
        }
    
        //HashBiMap存储的键和值都只能唯一,不存在键与键、值与值相同的情况
        @Test
        public void test() {
            HashBiMap<String, String> hashBiMap = HashBiMap.create();
            hashBiMap.put("1", "2");
            System.out.println(hashBiMap);
            //hashBiMap.put("2", "2"); //value already present: 2
            System.out.println(hashBiMap);
        }
    
        @Test
        public void testInverse() {
            HashBiMap<String, String> hashBiMap = HashBiMap.create();
            hashBiMap.put("1", "22");
            hashBiMap.put("3", "44");
            hashBiMap.put("5", "66");
            System.out.println(hashBiMap);//{1=22, 3=44, 5=66}
            BiMap<String, String> inverse = hashBiMap.inverse();//反转是生成新的对象,不改变原map
            System.out.println(hashBiMap);//{1=22, 3=44, 5=66}
            System.out.println(inverse);//{22=1, 44=3, 66=5}
        }
    
        @Test
        public void testForcePut() {
            HashBiMap<String, String> hashBiMap = HashBiMap.create();
            hashBiMap.put("1", "22");
            //hashBiMap.put("2", "22"); //value already present: 22
            hashBiMap.forcePut("2", "22");
    
            System.out.println(hashBiMap); //{2=22}
        }
    

    相关文章

      网友评论

          本文标题:Map / LinkedListMultimap / HashB

          本文链接:https://www.haomeiwen.com/subject/bicokhtx.html