List、Map中的contains和containsKey、containsValue方法阅读后的问题记录

     List和Map中都存在判断存储的对象是否存在的方法。

   List接口继承于Collection接口。Map是HashMap、TreeMap、LinkedHashMap的顶级接口。

   在List、Set中判断已存储的是否存在的方式是contains()方法。

   List的常用的List的实现类ArrayList、LinkedList中的contains()方法的具体实现都是下面这样:

public boolean contains(Object o) {
return indexOf(o) >= 0;
}
而indexOf(Object obj)的实现是通过for循环遍历调用equals方法。
  Map是通过内部接口Entry以键值对的方式保存对象。不论是HashMap还是HashTable等其他实现了Map接口的类在进行判断对象是否已经存在时也都存在
使用for循环遍历的过程,在比较时只是使用了hash函数进行运算。为什么再存在数据超1000时使用Map的实现类比使用List的实现类要快很多。
没想明白,先记着,如果有那位仁兄看到麻烦解释一下,谢谢。
posted @ 2021-03-17 21:10  干瘪咸鱼  阅读(392)  评论(0编辑  收藏  举报