一、前言 

       近期正在找工作,为此准备了Java集合的相关内容

二、java集合概述

      Java的集合类主要由两个接口派生而出:Collection和Map,  Collection和Map是java集合根接口,这两个接口又包含了一些子接口或实现类,

java集合整理

java集合整理

以上的使用多的是Collection中的List接口:HashSet , LinkedHashSet ,TreeSet

                                                    List接口: ArrayList,LinkedList,Vector。

                                           还有Map接口:HashMap , LinkedHashMap ,TreeMap

三、Collection接口

     Set集合

        1.HashSet

              底层由Hash表支持,

java集合整理

java集合整理

这个同样适用于List集合两个对象是否相等

         2.LinkedHashSet

java集合整理        结果:元素的顺序和添加顺序一致,但是不允许元素出现重复

        3.TreeSet

              理解:可以确保集合处于排序状态,有两种排序方法 :  自然排序和定制排序,默认的是自然排序

                        自然排序:根据集合元素大小进行排序,

                        定制排序:不管元素本身的大小,由Comparator对象负责元素的排序规则

java集合整理

            4.set实现类性能分析

                    java集合整理

java集合整理

     List集合

           1.ArrayList和LinkedList的区别

java集合整理

 

四、Map接口

          1.HashMap和HashTable的区别    

                1.HashTable是线程安全的,HashMap是线程不安全的,因此HashMap比HashTable的效率高

                2.HashTable 不允许null值作为一个key值或value值

                   如何使HashMap线程安全?

                (1)通过Collections.synchronizedMap()来封装所有不安全的HashMap的方法

                (2) 把HashMap进行了拆分,拆分成了多个独立的块,这样在高并发的情况下减少了锁冲突的可能

               3.HashMap的底层实现原理

                由数组和链表组成,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,它和HashSet类似,如果定                   位到的数组不含链表,那么对于查找,添加等操作很快,如果定位的数组包含链表,对于添加操作效率不变,但是对于                 查找操作,需要遍历链表,效率就会有所减慢,然后通过key对象的equals方法注意比对查找。

               对比: HashSet: 由哈希表支持,是无序的,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有的元素,HashSet没有提供get()方法,愿意是同HashMap一样,Set内部是无序的,只能通过迭代的方式获得

java集合整理

java集合整理

五、延伸     

      如何是map子类是线程安全的?

                1.使用HashTable

                2.HashMap加锁

                3.使用 ConcurrentHashMap,它使用了锁分段技术

 

      LinkedHashMap的概念,作用

          底层使用双向链表维护key-value的次序,负责维护map的迭代顺序,

                     性能略低于HashMap,但是在迭代元素的时有较好的性能

 

     TreeMap概念,作用

        和TreeSet是差不多的概念,使用红黑树管理数据,TreeMap的通常比HashMap,HashTable

            要慢(尤其是插入、删除时更慢),但是它总是可以保持一个有序状态

相关文章:

  • 2021-10-10
  • 2021-12-18
  • 2022-12-23
  • 2021-07-03
  • 2021-08-26
  • 2021-07-25
  • 2021-07-20
猜你喜欢
  • 2021-07-02
  • 2021-08-20
  • 2022-01-28
  • 2021-07-15
相关资源
相似解决方案