java自学--容器

容器分类

java容器主要分为三类:collection,map,iterator

一.collection

(一)list接口(元素有序且可以重复,通过索引来访问)

1.ArrayList

底层数组实现,查询快但增删慢,非线程安全。

2.LinkedList

        底层是链表实现,查询慢但增删快

3.Vector

         和ArrayList一样,但他是线程安全的。

(二)queue接口

1.PriorityQueue(优先队列)

   底层数组实现(完全二叉树),按照队列中的某个值的大小来排序。

2.ArrayDeque

  底层循环数组实现,基于数组的双端队列。

(三)set接口(元素无序且不允许重复)

1.hashSet

  底层哈希表+红黑树实现。

2.TreeSet

  底层二叉树实现。

二.map

1.hashMap(常见)

    底层由数组+链表实现。

    当数组长度超过阈值(8)底层由数组+链表+红黑树实现。(jdk8)

2.hashTable(常见)

     同hashmap。区别hashTable线程安全,hashMap非线程安全。

3.sortedMap接口(这是接口,Map->SortedMap->TreeMap)

  (1)treeMap(重点)

    基于红黑树实现。非线程安全,有序。

4.weakHashMap

     与hashmap的区别,这是对实际对象的弱引用,hashmap则是对实际对象的强引用。

    (强引用,弱引用,软引用,虚引用在jvm的分类中,学到再说)

5.IdentityHashMap

     与hashmap的区别,仅在key完全相等(引用相等)时才认为相等。

6.EnumMap

    枚举类型的map。

三.iterator

     迭代器。

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值