zoukankan      html  css  js  c++  java
  • 集合操作模板

    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);
        }
    
    }
  • 相关阅读:
    Docker 第二篇--安装Docker
    Docker 第一篇--初识docker
    VirtualBox 桥接上网方式的配置
    .NET服务器端按钮在客户端点击后禁用,服务端执行完事件后再次激活
    SignalR2.1部署IIS服务器无法推送消息
    SQL去掉某个字段重复记录
    动态生成WebService代理类
    openoffice启动服务并将office文件转换为pdf文件
    Hibernate 核心接口和工作机制
    linux下Mongodb集群搭建:分片+副本集
  • 原文地址:https://www.cnblogs.com/dacong-/p/5715234.html
Copyright © 2011-2022 走看看