打字猴:1.700444954e+09
1700444954 编写高质量代码:改善Java程序的151个建议 [:1700438147]
1700444955 编写高质量代码:改善Java程序的151个建议 建议76:集合运算时使用更优雅的方式
1700444956
1700444957 在初中代数中,我们经常会求两个集合的并集、交集、差集等,在Java中也存在着此类运算,那如何实现呢?一提到此类集合操作,大部分的实现者都会说:对两个集合进行遍历,即可求出结果。是的,遍历可以实现并集、交集、差集等运算,但这不是最优雅的处理方式。下面来看看如何进行更优雅、快速、方便的集合操作。
1700444958
1700444959 (1)并集
1700444960
1700444961 也叫做合集,把两个集合加起来即可,这非常简单,代码如下:
1700444962
1700444963 public static void main(String[]args){
1700444964
1700444965 List<String>list1=new ArrayList<String>();
1700444966
1700444967 list1.add(“A”);
1700444968
1700444969 list1.add(“B”);
1700444970
1700444971 List<String>list2=new ArrayList<String>();
1700444972
1700444973 list2.add(“C”);
1700444974
1700444975 list2.add(“B”);
1700444976
1700444977 //并集
1700444978
1700444979 list1.addAll(list2);
1700444980
1700444981 }
1700444982
1700444983 此时,list1中就是两个列表的并集元素了。
1700444984
1700444985 (2)交集
1700444986
1700444987 计算两个集合的共有元素,也就是你有我也有的元素集合,代码如下:
1700444988
1700444989 list1.retainAll(list2);
1700444990
1700444991 其中的变量list1和list2是两个列表,仅此一句话,list1中就只包含list1、list2中共有的元素了。注意retainAll方法会删除list1中没有出现在list2中的元素。
1700444992
1700444993 (3)差集
1700444994
1700444995 由所有属于A但不属于B的元素组成的集合,叫做A与B的差集,也就是我有你没有的元素,代码如下:
1700444996
1700444997 list1.removeAll(list2);
1700444998
1700444999 也很简单,从list1中删除出现在lis2的元素,即可得出list1与list2的差集部分。
1700445000
1700445001 (4)无重复的并集
1700445002
1700445003 什么叫无重复的并集?并集是集合A加集合B,那如果集合A和集合B有交集(也就是并集的元素数量大于0),就需要确保并集的结果中只有一份交集,此为无重复的并集。此操作也比较简单,代码如下:
[ 上一页 ]  [ :1.700444954e+09 ]  [ 下一页 ]