javalist查找元素是否存在_java如何判断集合中是否存在某个
元素——contain。。。
List 有⽅法contains可以判断出List中是否已经有这个值。
如果想去重复可以使⽤HashSet去重复。
List list = new ArrayList(new HashSet(a));
1.List的contains(obj)⽅法
实际上,List调⽤contains(Object obj)⽅法时,会遍历List中的每⼀个元素,然后再调⽤每个元素的equals()⽅法去跟contains()⽅法中的参数进⾏⽐较,如果有⼀个元素的equals()⽅法返回true则contains()⽅法返回true,否则所有equals()⽅法都不返回true,则ontains()⽅法则返回fal。因此,重写了Cour类的equals()⽅法,否则,testListContains()⽅法的第⼆条输出为fal。
2.Set的Contains(obj)⽅法
当调⽤HashSet的contains(Object obj)⽅法时,其实是先调⽤每个元素的hashCode()⽅法来返回哈希码,
如果哈希码的值相等的情况下再调⽤equals(obj)⽅法去判断是否相等,只有在这两个⽅法所返回的值都相等的情况下,才判定这个HashSet包含某个元素。因此,需重写Cour类的hashCode()⽅法和equals()⽅法。
3. Map中是否包含指定的Key和Value
在Map中,⽤containsKey()⽅法,判断是否包含某个Key值;⽤containsValue()⽅法,判断是否包含某个Value值。
注:跟List中的Contains()⽅法⼀样,Map中的ContainsValue()⽅法也需要调⽤某个Value值的equals()⽅法,去和参数对象进⾏⽐较,如果匹配成功,返回结果为true,说明在Map中的Value值确实包含参数对象。因此,需要重写实体类的equals()⽅法。