Collection的remove方法

Collection的remove方法


package com.cheng.collection;

import java.util.ArrayList;
import java.util.Collection;
//coll.remove(Object obj)   从coll集合中删除obj元素
//coll.removeAll(coll1)   从coll集合中删除coll1中所有元素 即两个集合的交集
public class Remove1 {
   public static void main(String[] args) {
       Collection coll  =  new ArrayList();
       coll.add(123);
       coll.add(456);
       coll.add(123);
       coll.add(new String("牛不牛"));
       coll.add(false);
       coll.add(new Person("Ali",24));

       coll.remove(123);//只删除第一个匹配到的123
       System.out.println(coll);//456 123 牛不牛 false Person{name='Ali', age=24}

       Collection coll1 = new ArrayList();
       coll1.add(123);
       coll1.add(new Person("Ali",24));
       System.out.println(coll1);//123   Person{name='Ali', age=24}
       System.out.println(coll.removeAll(coll1));//自定义的Person需要重写equals方法才能删除成功
       // 否则都会显示true 但是不重写元素还在集合里删不掉
       System.out.println(coll);//456 牛不牛 false

  }
}

Person类:

package com.cheng.collection;

import java.util.Objects;

public class Person {
   private String name;
   private int age;

   public Person() {
  }

   public Person(String name, int age) {
       this.name = name;
       this.age = age;
  }

   public String getName() {
       return name;
  }

   public void setName(String name) {
       this.name = name;
  }

   public int getAge() {
       return age;
  }

   public void setAge(int age) {
       this.age = age;
  }

   @Override
   public String toString() {
       return "Person{" +
               "name='" + name + '\'' +
               ", age=" + age +
               '}';
  }


   //重写equals如下
   @Override
   public boolean equals(Object o) {
       if (this == o) return true;
       if (o == null || getClass() != o.getClass()) return false;
       Person person = (Person) o;
       return age == person.age && Objects.equals(name, person.name);
  }



}

 

posted @ 2021-07-28 17:38  Dudo1  阅读(281)  评论(0)    收藏  举报