做办公家具在哪个网站推销好,可以做公众号的一些网站,工商个体户年检网上申报,微博 wordpressJava中ArrayList对基础类型和字符串类型的删除操作#xff0c;直接用remove方法即可。但是对于自定义的类来说#xff0c;用remove方法删除不了#xff0c;因为没有办法确定是否是要删除的对象。 ArrayList中remove源码是#xff1a;
public boolean remove(Object o) {if…Java中ArrayList对基础类型和字符串类型的删除操作直接用remove方法即可。但是对于自定义的类来说用remove方法删除不了因为没有办法确定是否是要删除的对象。 ArrayList中remove源码是
public boolean remove(Object o) {if (o null) {for (int index 0; index size; index)if (elementData[index] null) {//进行删除fastRemove(index);return true;}} else {for (int index 0; index size; index)if (o.equals(elementData[index])) {//进行删除fastRemove(index);return true;}}return false;}在remove方法中我们可以发现用到了equals方法进行判断是否两个对象相同。
因此在自定义类中重写equals即可实现remove方法。
重写equals需要判断是否是自身this obj还要判断传入的对象是否是该自定义类的对象obj instanceof OBJ之后将传入的对象强制转为自定义类后进行判断即可。 Overridepublic boolean equals(Object obj) {// 是否是本身if(this obj) {return true;}// 是否是该类实例if( !(obj instanceof Pet)) {System.out.println(类型错误);return false;}// 强制转换为该类 进行判断Pet p (Pet)obj;if(name.equals(p.getName()) age ((Pet) obj).getAge() color.equals(((Pet) obj).getColor()) weight ((Pet) obj).weight type ((Pet) obj).getType()) {return true;}return false;}[17-4ArrayList的contains/remove对对象操作关联equals的详解-CSDN博客](https://blog.csdn.net/kingdelee/article/details/7722869?ops_request_miscrequest_idbiz_id102utm_termjava arrayList remove equalsutm_mediumdistribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-7722869.142v96pc_search_result_base3spm1018.2226.3001.4187)