集合操作模板

Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。
对于集合的操作推荐使用Guava,它提供了很多许多集合的高级功能操作。在此插一句JavaBean 构造get()、set()、toString() 等一些方法时,也建议在ide中添加Guava插件,使用Guava生成。

需要的jar包:guava
 
 
直接code展示一下Guava的集合操作,看能否满足您的需求
public class CollectionsTemplate {

    private static final Log LOG = LogFactory.getLog(CollectionsTemplate.class);

    public static void main(String[] args) {
        //不要使用new
        List<Map<String, Demo>> list = Lists.newArrayList();
        LOG.info(list);

        //函数编程中的map操作,不要使用循环
        List<Long> idList = Lists.newArrayList();
        idList.add(1L);
        idList.add(2L);
        List<String> stringList = Lists.transform(idList, new Function<Long, String>() {
            @Override
            public String apply(Long value) {
                return String.valueOf(value);
            }
        });
        LOG.info(stringList);

        //List去重
        idList.add(3L);
        idList.add(2L);
        idList.add(4L);
        idList = ImmutableSet.copyOf(idList).asList();
        LOG.info(idList);

        //List转换成Map
        List<Demo> demoList = Lists.newArrayList();
        Demo demo = new Demo();
        demo.setUserID(1);
        demo.setName("令狐冲");
        demoList.add(demo);
        Map<Integer,Demo> map = Maps.uniqueIndex(demoList, new Function<Demo, Integer>() {
            @Override
            public Integer apply(Demo demo) {
                return demo.getUserID();
            }
        });
        LOG.info(map);

        //排序
        demo = new Demo();
        demo.setUserID(2);
        demo.setName("少林");
        demoList.add(demo);
        Ordering<Demo> byIDOrdering = new Ordering<Demo>() {
            @Override
            public int compare(Demo d1, Demo d2) {
                return d2.getUserID().compareTo(d1.getUserID());
            }
        };
        Collections.sort(demoList,byIDOrdering);
        LOG.info(demoList);
    }

}

 

转载于:https://www.cnblogs.com/dacong-/p/5715234.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值