set,map,list集合的交集差集存放相同值反转分割等-代码优雅之道Guava(三)
来源:互联网 发布:java rowurlencode 编辑:程序博客网 时间:2024/06/05 22:41
前言
前边已经对Guava类库做了简单介绍(博文:Java代码优雅之道-Guava(有相关jar包下载)),下面就简单介绍操作Set,Map,List集合的工具类的使用,学会灵活使用这些工具,会使用我们在开发中,更加省时省力,代码健壮性和可读性更高,更简洁,这也是我所谓的“代码优雅”,让我们开发中省出时间来去处理更重要的东西,废话不多说,一看代码就全明了了。
创建泛型集合更加简介
//创建泛型集合更加简介List<String> stringList=Lists.newArrayList();//创建ListSet<String> stringSet=Sets.newHashSet();//创建SetMap<String,Map<String,List<String>>> map=Maps.newHashMap();//创建Map
创建指定初始容量的集合
//创建指定初始容量的集合List<String> listWithSize=Lists.newArrayListWithCapacity(10);//创建指定初始大小容量的ListSet<String> setWithSize=Sets.newHashSetWithExpectedSize(10);//创建指定初始大小的SetMap<String,Map<String,List<String>>> mapWithSize=Maps.newHashMapWithExpectedSize(10);//创建指定初始化大小的Map
初始化时,就指定包含元素
//初始化时,就指定包含元素List<String> listWithElem=Lists.newArrayList("chen","lei","xing");Set<String> setWithElem=Sets.newHashSet("chen","lei","xing");
简单创建不可变集合
//简单创建不可变集合ImmutableList<String> noList=ImmutableList.of("aa","bb","cc");ImmutableMap<String,String> noMap=ImmutableMap.of("key1","value1","key2","value2");
可存放相等元素的Set集合Multiset和Map集合multimap
//可存放相等元素的Set集合Multiset和Map集合multimapMultiset<String> multiSet = HashMultiset.create();multiSet.add("chen");multiSet.add("chen");multiSet.add("xing");for(String s:multiSet){System.out.println(s);}Multimap<String,String> multiMap=HashMultimap.create();multiMap.put("chen","11");multiMap.put("chen","22");for(Map.Entry<String,String> entry:multiMap.entries()){System.out.println("key:"+entry.getKey()+" value:"+entry.getValue());}
输出结果:
chenchenxingkey:chen value:22key:chen value:11
找出2个Map的不同之处与相同之处,以Map形式返回
//找出2个Map的不同之处与相同之处,以Map形式返回ImmutableMap<String,Integer> oneMap=ImmutableMap.of("key1",1,"key2",2);ImmutableMap<String,Integer> twoMap=ImmutableMap.of("key11",11,"key2",2);MapDifference<String,Integer> diffHadle=Maps.difference(oneMap,twoMap);Map<String,Integer> commonMap=diffHadle.entriesInCommon();//{"key2",2},若无共同Entry,则返回长度为0的MapMap<String,Integer> diffOnLeft=diffHadle.entriesOnlyOnLeft();//返回左边的Map中不同或者特有的元素Map<String,Integer> diffOnRight=diffHadle.entriesOnlyOnRight();//返回右边的Map中不同或者特有的元素for(Map.Entry<String, Integer> entry:diffOnRight.entrySet()){System.out.println("共同Map中key:"+entry.getKey()+" value:"+entry.getValue());}
输出结果:
共同Map中key:key11 value:11
找出2个Set的不相同的元素和相同的元素,以Set形式返回
//找出2个Set的不相同的元素和相同的元素,以Set形式返回Set<String> oneSet=Sets.newHashSet("chen","lei","java");Set<String> twoSet=Sets.newHashSet("chen","lei","hadoop");SetView<String> diffSetHandle=Sets.difference(oneSet, twoSet);//是得到左边中不同或者特有的元素,若无,则返回长度为0的集合Set<String> diffImmutable=diffSetHandle.immutableCopy();//返回一个不可变的左边Set中特有元素集合的Set拷贝Iterator iter=diffSetHandle.iterator();while(iter.hasNext()){System.out.println("Set的不同元素:"+iter.next().toString());}SetView<String> commonSet=Sets.intersection(oneSet, twoSet);Set<String> commonImmutable=commonSet.immutableCopy();//返回一个不可变的2个Set中共同元素集合的Set拷贝
输出结果:
Set的不同元素:java
list反转分割
//Lists其他操作方法List<String> listDemo=Lists.newArrayList("chen","lei","xing");List<String> listRever=Lists.reverse(listDemo);//返回指定list的反转视图,所以大小是不可变的List<String> listReverChange=ImmutableList.copyOf(listRever).reverse();//当然这个重新得到了一个新的反转后list,所以大小是可变的List<List<String>> listList=Lists.partition(listDemo,2);//把List按指定大小分割{{"chen","lei"},{"xing"}}
org.apache.commons.collections工具包里的集合操作工具
org.apache.commons.collections为apache开源的集合操作工具包,里边也有很丰富的工具,也有存入相同key的Map,不过和Guava的效果不一样,感兴趣的及相关jar包的下载可以看看我的博客:
Bag集合工具类(apache-commons-collections3.2工具包)在java中的使用
BidiMapMultiMapLazyMap-apache-commons-collections中Map辅助类的使用
Java代码优雅之道-Guava
Strings类的简单使用-代码优雅之道Guava(一)
Files类的简单使用-代码优雅之道Guava(二)
set,map,list集合的交集差集存放相同值反转分割等-代码优雅之道Guava(三)
载请注明—作者:Java我人生(陈磊兴) 原文出处:http://blog.csdn.net/chenleixing/article/details/44708533
最后,认真看过的网友们,大神们,如有感觉我这个程序猿有哪个地方说的不对或者不妥或者你有很好的提议或者建议或点子方法,还望您大恩大德施舍n秒的时间留下你的宝贵文字(留言),以便你,我,还有广大的程序猿们更快地成长与进步.......
3 0
- set,map,list集合的交集差集存放相同值反转分割等-代码优雅之道Guava(三)
- list ,set,map 三中类型的集合那些能存放null类型的值
- java guava 集合的操作:交集、差集、并集
- List和set集合:交集、差集、合集的区别retainAll,removeAll、addAll
- JavaScript Set集合的并集,交集,差集
- 求List集合的并集、交集、差集
- List集合的并集、交集、差集以及源码
- 集合之List、Map、Set的区别
- 关于List集合之间求交集,并集,合集,差集等.....
- Java 取集合的差集,list集合或者map集合,都可以取差集。使用guava工具类来做。而不是重复的造轮子。
- python set集合运算(交集,并集,差集,对称差集)
- python-set()集合操作(创建、添加、删除、交集、并集、差集、对称差集)
- JAVA-Set,List,Map三大集合之我见
- map、list、set等常见集合的理解
- java 中的 set以及集合,map,list等的理解
- java基础之对List,Map,Set等集合键值对的简单认识
- Java代码优雅之道-Guava
- Java代码优雅之道-Guava
- 客户端和服务器端路径问题及资源的获取
- unity游戏移植到WindowsPhone8平台上的一些经验
- Windows与Linux动态链接库技术的对比
- VS2013+QT5.4.1环境配置和注意事项
- Codeforces Round #157 (Div. 2)
- set,map,list集合的交集差集存放相同值反转分割等-代码优雅之道Guava(三)
- C语言编程——次数排序--结构体数组及冒泡排序法
- 有关上传下载的路径问题
- 云盘秒传原理的探讨——哈希查找与数据去重
- java中的异常
- 《Scala编程》学习笔记(17~18章)
- 在ecliplse中导入已有web项目(也是用ecliplse进行编写的)
- 配置管理数据库元数据文件
- Android错误之ListView加载错位_ListView图片错位