当前位置: 首页 > news >正文

优秀htm网站建设局和住建局是一个部门吗

优秀htm网站,建设局和住建局是一个部门吗,工程建设项目管理系统平台,北京市昌平建设工程招标网站对于集合取交集、并集的处理其实有很多种方式,这里就介绍3种 第一种 是CollectionUtils工具类 第二种 是List自带方法 第三种 是JDK1.8 stream 新特性 1、CollectionUtils工具类 下面对于基本数据(包扩String)类型中的集合进行demo示例。 public static void main(String[]…

对于集合取交集、并集的处理其实有很多种方式,这里就介绍3种

  • 第一种 是CollectionUtils工具类

  • 第二种 是List自带方法

  • 第三种 是JDK1.8 stream 新特性

1、CollectionUtils工具类

下面对于基本数据(包扩String)类型中的集合进行demo示例。

 public static void main(String[] args) {String[] arrayA = new String[] { "1", "2", "3", "4"};String[] arrayB = new String[] { "3", "4", "5", "6" };List<String> listA = Arrays.asList(arrayA);List<String> listB = Arrays.asList(arrayB);//1、并集 unionSystem.out.println(CollectionUtils.union(listA, listB));//输出: [1, 2, 3, 4, 5, 6]//2、交集 intersectionSystem.out.println(CollectionUtils.intersection(listA, listB));//输出:[3, 4]//3、交集的补集(析取)disjunctionSystem.out.println(CollectionUtils.disjunction(listA, listB));//输出:[1, 2, 5, 6]//4、差集(扣除)System.out.println(CollectionUtils.subtract(listA, listB));//输出:[1, 2]}

2、List自带方法

 public static void main(String[] args) {String[] arrayA = new String[] { "1", "2", "3", "4"};String[] arrayB = new String[] { "3", "4", "5", "6" };List<String> listA = Arrays.asList(arrayA);List<String> listB = Arrays.asList(arrayB);//1、交集List<String>  jiaoList = new ArrayList<>(listA);jiaoList.retainAll(listB);System.out.println(jiaoList);//输出:[3, 4]//2、差集List<String>  chaList = new ArrayList<>(listA);chaList.removeAll(listB);System.out.println(chaList);//输出:[1, 2]//3、并集 (先做差集再做添加所有)List<String>  bingList = new ArrayList<>(listA);bingList.removeAll(listB); // bingList为 [1, 2]bingList.addAll(listB);  //添加[3,4,5,6]System.out.println(bingList);//输出:[1, 2, 3, 4, 5, 6]}

注意 : intersection和retainAll的差别

它们的返回类型是不一样的,intersection返回的是一个新的List集合,而retainAll返回是Bollean类型。

那就说明retainAll方法是对原有集合进行处理再返回原有集合,会改变原有集合中的内容。

注意 : Arrays.asList将数组转集合不能进行add和remove操作。

原因:调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的市Arrays的内部类ArrayList, 而不是java.util.ArrayList。

所以正确做法如下

  String[] array = {"1","2","3","4","5"};List<String> list = Arrays.asList(array);List arrList = new ArrayList(list);arrList.add("6");

 3、JDK1.8 stream 新特性

 public static void main(String[] args) {String[] arrayA = new String[] { "1", "2", "3", "4"};String[] arrayB = new String[] { "3", "4", "5", "6" };List<String> listA = Arrays.asList(arrayA);List<String> listB = Arrays.asList(arrayB);// 交集List<String> intersection = listA.stream().filter(item -> listB.contains(item)).collect(toList());System.out.println(intersection);//输出:[3, 4]// 差集 (list1 - list2)List<String> reduceList = listA.stream().filter(item -> !listB.contains(item)).collect(toList());System.out.println(reduceList);//输出:[1, 2]// 并集 (新建集合:1、是因为不影响原始集合。2、Arrays.asList不能add和remove操作。List<String> listAll = listA.parallelStream().collect(toList());List<String> listAll2 = listB.parallelStream().collect(toList());listAll.addAll(listAll2);System.out.println(listAll);//输出:[1, 2, 3, 4, 3, 4, 5, 6]// 去重并集 List<String> list =new ArrayList<>(listA);list.addAll(listB);List<String> listAllDistinct = list.stream().distinct().collect(toList());System.out.println(listAllDistinct);//输出:[1, 2, 3, 4, 5, 6]}

总结 :第一种方式常用,因为第二种还需要确定该集合是否被多次调用。第三种可读性不高。

http://www.yayakq.cn/news/472190/

相关文章:

  • 郑州网站建设详细内容推荐怎么做网站的排名优化
  • 花生壳网站无法登陆做社交网站用什么语言
  • 北京网站建设优化学校做零食网站的首页模板
  • 建设部资质查询网站点样做网站
  • 设计教育网站手机上的软件网站建设
  • 分析网站的网站专业公司网络推广
  • 深圳网站搭建专做立体化的网站
  • 百度制作网站推广常见的门户网站有哪些
  • 灵犀科技 高端网站建设网站建设出找不到网页
  • 有哪些网站可以兼职做笔译wordpress下拉菜单的阴影怎么改
  • 新网站不收录网站后台登入不了出现验证码错误
  • 长沙做网站品牌重庆网站优化公司哪家便宜
  • 青岛网站推广关键词苏州建网站公司
  • 修改网站源码连接数据库怎么做python做网站安全性
  • 网站建设兼职在哪找有哪些商业网站
  • 外贸自建站有哪些wordpress 分类 标题
  • 深圳深网站建设服务网站备案到期
  • 汤唯梁朝伟做的视频网站中国品牌装修公司排名
  • 网站首页的动态视频怎么做的免费net虚拟主机空间
  • 网站建设合同以及服务条款免费下载建设银行官方网站
  • 北京矿建建设集团有限公司 网站html网页代码完整代码四个跳
  • 公司网站建设怎么顺德网站建设案例
  • 做网站去哪个平台如何禁止某ip访问网站
  • 网站设计哪家专业出名的建站网站
  • 购物网站网页模板公司企业邮箱大全
  • 官网指的是什么网站毕业设计指导网站建设
  • 北京网站建设哪家公司好搭建网页游戏教程
  • 织梦可以做家教网站吗网站建设模板坏处
  • 网站建设siteserver今朝装饰
  • 东莞网站建设做网站免费做思维导图的网站