`
llmy
  • 浏览: 120949 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

Collection中的removeAll方法

    博客分类:
  • J2EE
 
阅读更多

   public boolean removeAll(Collection<?> c)  

  移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。此调用返回后,collection 中将不包含任何与指定 collection 相同的元素。

 

import java.util.*;
import java.io.Serializable;
public class TestRemoveAll{
	public static void main(String[] args){
		//测试removeAll方法
		/*
		//removeAll在数据量很大的情况下是不适合用的
		List<Double> testList = new ArrayList<Double>();

		for(Double i=0.0;i<655355;i++){
			testList.add(i);
	    }
	    List<Double> test = new ArrayList<Double>();
	    for(Double i=0.0;i<6555;i++){
		  test.add(i);
	    }
		Long l = System.currentTimeMillis();
		testList.removeAll(test);
		System.out.println(System.currentTimeMillis()-l);
		*/
		List<Student> lists = new ArrayList<Student>();
		lists.add(new Student("1","Lucy",20));
		lists.add(new Student("2","Mary",23));
		lists.add(new Student("3","Neck",22));
		List list1 = new ArrayList();
		list1.add(new Student("2","Mary",23));
		list1.add(new Student("3","Neck",22));
		lists.removeAll(list1);
		for(Student list: lists){
			System.out.println(list.getId()+"                 "+list.getName()+"            "+list.getAge());
	    }
	}
}

class Student implements Serializable{
    private String id;
    private String name;
    private Integer age;
    public Student(){}
    public Student(String id,String name ,Integer age){
		this.id = id;
		this.name = name;
		this.age = age;
    }

    public void setId(String id){
		this.id = id;
	}
	public void setName(String name){
		this.name = name;
    }
    public void setAge(Integer age){
		this.age = age;
	}
	public String getId(){
		return id;
	}
	public String getName(){
		return name;
	}
	public Integer getAge(){
		return age;
	}
         //覆盖equals方法 注意参数为:Object类型
	public boolean equals(Object obj){
        Student stu = (Student)obj;
        boolean flag = true;
        if(!stu.getId().equals(id)){
			flag = false;
		}else if(!stu.getName().equals(name)){
		    flag = false;
		}else if(stu.getAge()!=age){
			flag = false;
		}
		return flag;
    }
    /*public int hashCode(){
        return 0;
	}*/
}

 

 

  问题1:覆盖了equals方法是否一定覆盖hashCode方法

  http://www.exam8.com/computer/djks/dj2/Java/ziliao/200810/1314425.html

  问题2:removeAll方法在数据量很大的情况下,是不适合用的,该用什么方法来解决呢

 

  另外还有retainAll

  public boolean retainAll(Collection<?> c)

 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。换句话说,移除此 collection 中未包含在指定 collection 中的所有元素。

此实现在此 collection 上进行迭代,依次检查该迭代器返回的每个元素,以查看其是否包含在指定的 collection 中。如果不是,则使用迭代器的 remove 方法将其从此 collection 中移除。

分享到:
评论

相关推荐

    Collection接口中的常用方法

    `void removeAll(Collection c)` 从当前集合中移除指定集合中存在的所有元素。这是一种高效的操作,通常用于数据清理或过滤场景。 #### 9. `boolean addAll(Collection c)` 将指定集合中的所有元素添加到当前...

    collection接口方法[归类].pdf

    11. `public boolean removeAll(Collection&lt;?&gt; c)`:从集合中移除另一集合的所有元素。 12. `public boolean retainAll(Collection&lt;?&gt; c)`:仅保留集合中与指定集合相同的元素,删除其他所有元素。 13. `public ...

    Collection使用

    Collection接口定义了存储和操作一组对象的基本方法,如添加元素(add)、删除元素(remove)、检查是否包含特定元素(contains)、获取元素数量(size)等。它是所有集合类的父接口,提供了一个统一的接口来处理不同类型的...

    Java集合框架Collection接口.pdf

    4. **removeAll(Collection c)**:移除当前集合与另一个集合共有的所有元素。 5. **retainAll(Collection c)**:仅保留当前集合与另一个集合共有的元素。 6. **clear()**:清空集合中的所有元素。 7. **contains...

    Java容器框架 collection集合

    - `boolean removeAll(Collection&lt;?&gt; c)`: 移除集合中与指定集合共有的所有元素(即求集合的差集)。 - `boolean retainAll(Collection&lt;?&gt; c)`: 仅保留集合中与指定集合共有的元素(即求集合的交集)。 - **转换...

    Tedu一段Java集合Collection

    - **`removeAll(Collection&lt;?&gt; c)`**:从当前集合中移除与指定集合共同拥有的元素(即删除交集)。 - **`iterator()`**:返回一个用于遍历集合元素的迭代器。 - **`toArray()`**:将集合转换为数组。 ### 四、集合...

    Java提取2个集合中的相同和不同元素代码示例

    removeAll方法用于从列表中移除指定collection中包含的所有元素。其语法为:`removeAll(Collection&lt;?&gt; c)`,其中c为包含从列表中移除元素的collection对象。该方法返回值为boolean对象,如果List集合对象由于调用...

    大公司最喜欢问的Java集合类面试题.docx

    Collection接口的主要方法包括add、addAll、remove、removeAll、retainAll等。 Iterator模式是Java集合类中的一种遍历模式,用于遍历集合的所有元素。Iterator模式可以把访问逻辑从不同的集合类中抽象出来,从而...

    11.集合框架001-Collection接口1-3

    4. List接口的其他方法,如containsAll()、addAll()、removeAll(),用于比较、添加和移除多个元素。 最后,“3-集合框架003-ArrayList实操-1080P 高清-AVC.mp4”可能涉及实际编程示例,展示ArrayList在实际项目中的...

    jdk源码阅读Collection详解

    11.removeAll(Collection&lt;?&gt; c):移除与指定集合c相同的元素(即移除两集合交集部分)。 12.retainAll(Collection&lt;?&gt; c):保留与指定集合c中相同的元素(即移除与指定集合不同的元素)。 13.clear():清空集合。 ...

    EXCEL VBA方法参考手册

    45. **RemoveAll方法** 46. **Show方法** 47. **Skip方法** 48. **SkipLine方法** 49. **WhatsThisMode方法** 50. **Write方法** 51. **WriteBlankLines方法** 52. **WriteLine方法** #### Add方法 **简介:** `Add...

    Java软件开发实战 Java基础与案例开发详解 11-2 Collection接口 共9页.pdf

    - **组操作**:作用于元素组或整个集合,如表11.3所示,包括`addAll(Collection&lt;? extends E&gt; c)`用于添加多个元素,`removeAll(Collection&lt;?&gt; c)`用于移除集合中的多个元素等。 - **转换操作**:用于集合与数组间的...

    Collection的增删查改

    - `removeAll(Collection coll)`:移除列表中包含的所有指定集合中的元素。 - `retainAll(Collection coll)`:只保留列表中包含的指定集合中的元素。 - `contains(Object obj)`:检查列表中是否存在指定的对象。 - `...

    JAVA集合详解

    - **removeAll(Collection c)**:移除集合中包含指定集合的所有元素。 - **clear()**:清空集合中的所有元素。 ##### 2. Collection的常用方法示例 下面是一个简单的示例代码,展示了如何使用`Collection`接口的...

    集合.pdf

    * removeAll(Collection c):删除此集合的所有也包含在指定集合中的元素。 * retainAll(Collection c):仅保留此集合中包含在指定集合中的元素。 * size():返回此集合中的元素数。 * stream():返回以此集合作为其...

    认识类集、Collection接口

    - `containsAll(Collection&lt;?&gt; c)`:判断集合是否包含另一集合的所有元素。 4. **遍历元素**: - `iterator()`:返回一个迭代器,可以用来依次访问集合中的每个元素。 - `forEach(Consumer&lt;? super E&gt; action)`...

    java集合详解.pdf

    * removeAll(Collection&lt;?&gt; c):删除集合中的所有元素。 * clear():清空集合中的所有元素。 1.2.2 迭代器 迭代器是 Collection 接口中的一个重要概念,它允许开发者遍历集合中的所有元素。迭代器可以使用 hasNext...

    C#遍历集合与移除元素的方法

    此外,C# 6.0引入了`RemoveAll()`方法,它可以一次性移除满足指定条件的所有元素,这样可以简化代码并提高性能: ```csharp List&lt;int&gt; numbers = new List&lt;int&gt; { 1, 2, 3, 4, 5 }; numbers.RemoveAll(n =&gt; n % 2 =...

    java集合框架图 (清晰表明集合之间的关系)

    boolean containsAll(Collection c) 查找集合中是否含有集合 c 中所有元素、boolean addAll(Collection c) 将集合 c 中所有元素添加给该集合、void clear() 删除集合中所有元素、void removeAll(Collection c) ...

    EXCEL VBA 方法参考 手册

    - RemoveAll方法 - **Err对象** - Clear方法 - Raise方法 - **File对象、Folder对象** - Copy方法 - Delete方法 - CreateTextFile方法(Folder对象) - Move方法 - OpenAsTextStream方法(File对象) - **...

Global site tag (gtag.js) - Google Analytics