码迷,mamicode.com
首页 > Windows程序 > 详细

Collection中带有All结尾的常用API详解

时间:2018-11-13 18:05:49      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:eal   list   工程   api   span   move   ack   java开发   组成   

Collection中带有All结尾的常用API有四种:addAll(),removeAll(),containsAll() 和 retainAll()

详解:

假设现有2个List对象,分别为list1和list2

一、addAll()

list1.addAll(list2)

将list2中的所有元素都添加到list1中。list1元素有变,list2元素没变。

 

二、removeAll()

list1.removeAll(list2)

首先list1与list2先取交集,然后删除list1中的交集元素,接着将删除交集后的list1重新赋给list1。list1元素有变,list2元素不变。

 

三、containsAll()

boolean flag = list1.containAll(list2)

判断list1中是否包含list2中的所有元素,若包含返回true,否则返回false 。

 

四、retainAll()

boolean flag = list1.retainAll(list2)

该方法是取2个集合的交集。首先list1和list2取到交集,将交集赋给list1,如果list1集合元素组成发生了变化,那么就返回true,否则返回false。

特殊情况:若list1和list2两个集合完全相同,list1和list2的交集就是他们本身,把交集赋给list1时,list1没有发生任何的变化,所以返回false。

简而言之:若retainAll()中list1发生变化,就返回 true,不发生变化就返回false 。

 

脑补:

高级Java开发工程师,面试过程中经常会遇到这样的面试题 “怎样快速获取2个List集合的交集?”,相信您肯定遇到过,答案就是用到List对象的retailAll()方法。

Collection中带有All结尾的常用API详解

标签:eal   list   工程   api   span   move   ack   java开发   组成   

原文地址:https://www.cnblogs.com/80dream/p/9953456.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!