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);
}
}