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
}
}