javaremoveall
① java中removeAll方法与clear方法有什么区别
这里我以Collection接口中的两个方法进行说明:
1、clear()方法
注意看源码对于此方法的说明,这里是说你用一个Collection对象(我们称其为A)调用此方法,这个方法中需要传入一个参数,参数为另一个Collection对象(我们称之为B),调用此方法为从A中移出它和B对象相同的元素。而对于A中含有而B中不含有的对象,不移除。
不同于clear()方法的是,执行removeAll()方法后,Collection对象中可能仍有元素。
② java中list的removeall问题
底层是用迭代器来实现的
publicbooleanremoveAll(Collection<?>collection){
booleanresult=false;
Iterator<?>it=iterator();
while(it.hasNext()){
if(collection.contains(it.next())){
it.remove();
result=true;
}
}
returnresult;
}
③ Java中 removeAll 方法的一点小疑问
publicstaticvoidmain(String[]args){
List<String>list=newArrayList<String>();
list.add("11");
list.add("22");
list.add("33");
list.add("11");
List<String>list2=newArrayList<String>();
list2.add("11");
list2.add("22");
list.removeAll(list2);
System.out.println(list.toString());
}
如上述代码:此是指的list(要移除的集合),指定指的是list2(要移除中包含的集合),最终打印:[33]
④ java集合问题----removeAll
list存放的是temp的地址。你把temp里面的东西全部删了,也就是把一个list里面最终指向的=空间删了,当然是空了。这些引用类型 和基本类型是不同的
⑤ java中的removeall方法是什么意思
如果JComboBox 的元素使用add()添加的,就用removeAll()移出。如果是用addItem()添加的,就用removeAllItems()移出。
⑥ 如何使用Java List等集合类的removeAll方法
List等集合类的removeAll方法,API文档描述如下:
1
2
boolean removeAll(Collection<?> c)
从列表中移除指定 collection 中包含的其所有元素(可选操作)。
用法案例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
List<String> list1 = new ArrayList<String>();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list1.add("5");
list1.add("6");
List<String> list2 = new ArrayList<String>();
list2.add("2");
list2.add("4");
list2.add("6");
list2.add("8");
list1.removeAll(list2); //删除 2 4 6
removeAll的方法实现在下面的类里面:
java.util.AbstractCollection<E>
具体代码为:
1
2
3
4
5
6
7
8
9
10
11
public boolean removeAll(Collection<?> c) {
boolean modified = false;
Iterator<?> it = iterator();
while (it.hasNext()) {
if (c.contains(it.next())) {
it.remove();
modified = true;
}
}
return modified;
}
可以看到在调用removeAll方法时,实际上是循环调用了remove方法,remove方法具体代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public boolean remove(Object o) {
Iterator<E> it = iterator();
if (o==null) {
while (it.hasNext()) {
if (it.next()==null) {
it.remove();
return true;
}
}
} else {
while (it.hasNext()) {
if (o.equals(it.next())) {
it.remove();
return true;
}
}
}
return false;
}
注意:remove方法中有一段关键的代码:if (o.equals(it.next())) ,在执行removeAll方法时是通过equals方法来判断集合元素是否相等的,如果集合的元素是对象,并且没有Override equals方法,可能会导致移除失败!
⑦ Java集合List里面的removeAll()方法,在哪里实现的。
List是接口继承了Collection接口
ArrayList继承了AbstractList是实现了List,RandomAccess,Cloneable,Serializable jdk1.7以上可以直接查看源代码的 !
List中定义了removeAll
ArrayList实现了removeAll
⑧ 怎么使用Java List等集合类的removeAll方法
importjava.util.ArrayList;
importjava.util.List;
publicclassListRemoveAll{
publicstaticvoidmain(String[]args){
List<String>list1=newArrayList<String>();
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
list1.add("5");
list1.add("6");
List<String>list2=newArrayList<String>();
list2.add("2");
list2.add("4");
list2.add("6");
list2.add("8");
list1.removeAll(list2);//删除246
System.out.println(list1.size());//list1还剩下3个元素,135
}
}