集合操作模板

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