我是靠谱客的博主 无心胡萝卜,最近开发中收集的这篇文章主要介绍在java容器中remove方法原理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

package TestCollection;
import java.util.ArrayList;
import java.util.Collection;

	public static void main(String[] args) {
Collection<Name> a = new ArrayList<Name>();
a.add(new Name("王","东旭"));
a.add(new Name("杨","炳哲"));
a.remove(new Name("王","东旭"));
}
}
class Name{
private String firstName;
private String lastName;
public Name(){
}
public Name(String firstName,String lastName){
this.firstName = firstName;
this.lastName = lastName;
}
public boolean equals(Object other){
if(other instanceof Name){
Name otherName = (Name)other;
return this.firstName == otherName.firstName && this.lastName == otherName.lastName;
}
return super.equals(other);
}
public String toString(){
return firstName + " " + lastName;
}
}

   容器不管哪一种都会implements Collection接口,在几乎每种容器中都是通过容器元素本身的equals方法判断是否相等,remove方法也是通过equals从头遍历找出相等的然后删除。

   可以发现如果容器元素未定义equals后,运行remove将无法删除元素,原因就是Collection自动调用了元素父类的equals方法进行比较,而在Object类中的equals方法

public boolean equals(Object obj){
return this == obj;

}

    显然是通过比较两个对象的地址,所以除非在容器中的元素有别处的引用,否则不会删除。


最后

以上就是无心胡萝卜为你收集整理的在java容器中remove方法原理的全部内容,希望文章能够帮你解决在java容器中remove方法原理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部