Guava学习

本文参考文章:

   http://ifeve.com/google-guava/

 

package com.jmp.moudle.Guava;


        import com.google.common.collect.ArrayListMultimap;
        import com.google.common.collect.ListMultimap;

        import java.util.Map;

/**
 *  最常使用的是ListMultimap 和 SetMultimap, keys分别map到List和Set
 *  当我们的数据结构为:
 *      Map<String,List<T> 进行插入初始化判断是一件比较麻烦的事情,用guava这个数据结构可以解决这个初始化的操作
 *
 *      Api :
         put(K, V):添加键到单个值的映射
         putAll(K, Iterable<V>):依次添加键到多个值的映射
         remove(K, V):移除键到值的映射;如果有这样的键值并成功移除,返回true
         removeAll(K):清除键对应的所有值,返回的集合包含所有之前映射到K的值,但修改这个集合就不会影响Multimap了
         replaceValues(K, Iterable<V>):清除键对应的所有值,并重新把key关联到Iterable中的每个元素。返回的集合包含所有之前映射到K的值
 *
 */
public class Multimap {

    public static void main(String[] args) {
        ListMultimap<String, String> listMultimap = ArrayListMultimap.create();

        for(int k=0;k<10;k++) {
            listMultimap.put("No.1", "k" + k);
        }

        for (int z=0;z<5;z++) {
            listMultimap.put("No.2", "z" + z);
        }

        //遍历的操作
        for (Map.Entry<String, String> entry : listMultimap.entries()) {
            System.err.println("key = "+entry.getKey()+"  --->  value = "+entry.getValue());
        }

        //判断键是否存在
        if (listMultimap.containsKey("No.2")) {
            System.err.println("键值包含 : No.2");
        }

        //”键-单个值映射”的个数
        System.err.println(listMultimap.size());

        //不同键的个数
        System.err.println(listMultimap.keySet().size());

    }
}
package com.jmp.moudle.Guava;

import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;

import java.util.List;
import java.util.Map;

/**
 * Guava之Iterables
 *   有并集 交集 操作
 */
public class IterablesTest {

    public static void main(String[] args) {

        List<String> list = Lists.newArrayList("A", "B", "C");

        Iterable<String> iterables = Iterables.concat(list);

        for (String str : iterables) {
            System.err.println(str);
        }


        //以后Map的初始化跟迭代
        Map<String,String> map = Maps.newHashMap();
        map.put("A", "1");
        map.put("B", "2");
        map.put("C", "3");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            System.err.println(entry.getKey() + "  :  " + entry.getValue());
        }
    }
}
package com.jmp.moudle.Guava;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.jmp.comm.Utils.JsonUtil;

import java.util.List;
import java.util.Map;

/**
 * 集合初始化的写法
 *
 */
public class Collections {
    public static void main(String[] args) {

        List<String> list1 = Lists.newArrayList();

        List<String> list2 = Lists.newArrayList("A", "B", "C");

        System.err.println(JsonUtil.toJson(list2));

        Map<String, String> map = Maps.newHashMap();

    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值