java集合派系汇总

java中的数据类型比较多,有基本的四类八种,还有引用类型。

基本数据类型这边就不重复了,今天重点梳理一下引用类型的一个大头:集合的门派。

区分集合,最显著的特征,从是否线程安全,是否有序,可重复来区分。经过我很长时间的总结:基本把集合的门派和族谱摸清了:

集合总的来看,可以分为两大派系:单列(Collection)和双列(Map),这两个都是接口。

1、Collection接口:单列集合,有两个子接口

1.1List接口:(有序可重复)

有三个实现类:

LinkedList:基于链表(可以理解成数据之间有个链子串起来了),所以增删快,查询慢;

ArrayList:这个大家最常见,基于数组(由于数组有索引下标),所以检索比较快,增删慢;

Vector:这个比较陌生,很少使用,为啥?因为它效率太低,但是它是线程安全的;

1.2Set接口:(不可重复)

有两个实现类:

HashSet:底层是哈希表,它是无序的;

LinkedHashSet:底层是链表和哈希表,所以是有序的。

2、Map接口:

双列集合,有三个实现类

HashMap:高效,支持null,无序(只要是哈希出来的,都是无序的),但是非线程安全(使用的比较多)

                HashMap有一个子类,LinkedHashMap,有序的;

HashTable:线程安全,往往也意味着,效率低,不支持null,无序的。

TreeMap:二叉树,是有序的,默认升序排序;

对比着去记忆,才能梳理清楚。把常见的记清楚也够使用了。

猜你喜欢

转载自blog.csdn.net/zhangxingyu126/article/details/82432699
今日推荐