Java中的集合详解,结合 ArrayList、HashSet 的区别以及HashCode的作用。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wu_Dream/article/details/82900264

Java中的集合:

     (1)Collection                   

       List(有序,可重复)
            ArrayList
                底层数据结构是数组,查询快,增删慢
                线程不安全,效率高
            Vector
                底层数据结构是数组,查询快,增删慢
                线程安全,效率低
            LinkedList
                底层数据结构是链表,查询慢,增删快
                线程不安全,效率高
        Set(无序,唯一)
            HashSet
                底层数据结构是哈希表。
                哈希表依赖两个方法:hashCode()和equals()

 

(2)Map(双列集合)

      A:Map集合的数据结构仅仅针对键有效,与值无关。
      B:存储的是键值对形式的元素,键唯一,值可重复。

      HashMap线程不安全,

      HashTable线程安全,方法是Synchronize关键字的。

      TreeMap

ArrayList与HashSet:

1.ArrayList会以数组的形式进行存放数据,所以就是说放进去的对象都是不唯一且有序的,可以存下多个相同的对象。

2.HashSet其本身就是无序的,唯一的,当存在相同的对象时,该对象会被替换掉,故不会存在重复的值.(为什么不会出现重复的值?原因是采取了Hash的算法,每一个放进去的值或者说对象都会生成一些特定的数字,并进行比对。)

HashCode:

HashCode方法的作用就是进行比较对象内部的值,如果对象内部的值相同则会被归纳,为一个对象,在new HashSet进行存放值的之后可以相继进行使用(java类中右键-->resoure(源码)-->hashCode() and equals()...)。

猜你喜欢

转载自blog.csdn.net/wu_Dream/article/details/82900264