ArrayList的数据删除

来源:互联网 发布:淘宝助理授权 编辑:程序博客网 时间:2024/05/16 19:44

在开发的过程中发现ArrayList移除不了一个数据:直接说原因 删除目标的实体未实现equals方法。

正如如下代码:

public class TestRemove {public static void main(String[] args) {Person person = new Person("li");Person person2 = new Person("li");ArrayList<Person> persons= new ArrayList<Person>();persons.add(person);persons.remove(person2);System.out.println(persons.size());}}class Person {private String name ;public Person() {}public Person(String name) {super();this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

运行结果:1

在代码中重写方法equals()

@Overridepublic boolean equals(Object obj) {if(Person.class.isInstance(obj) ){    Person person =(Person)obj;return person.getName().equals(this.getName());}else{throw new RuntimeException("传入参数异常");}}
运行结果:0