java集合概述及与数组的区别

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

1集合与数组

数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。

集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。

二、层次关系

2集合类图

接口 Map <K,V>    
不能包含重复的键; 每个键最多可以映射一个值
HashMap <K,V>    
基于哈希表的Map接口实现。允许 null值和null键。(HashMap 该类大致相当于Hashtable,除了它是不同步的并且允许空值。)这个类不保证Map的顺序
Hashtable<K,V>
该类实现了一个哈希表,任何非null对象都可以用作键或值。用作键的对象必须实现hashCode 方法和equals方法。
LinkedHashMap<K,V> 
具有可预测的迭代顺序。通常是键插入映射的顺序(插入顺序)。请注意,如果将键重新插入Map,则不会影响插入顺序。
TreeMap<K,V>
基于红黑树的NavigableMap实现。Map根据其键的自然顺序进行排序,或者根据使用的构造函数在Map创建时提供Comparator。
ConcurrentHashMap <K,V> 
WeakHashMap <K,V>
基于哈希表的Map接口实现,具有弱键。WeakHashMap当其key不再正常使用时,将自动删除该条目中的条目。更确切地说,给定key的映射的存在不会阻止key被垃圾收集器丢弃
当一个键被丢弃时,它的条目将被有效地从地图中删除,因此该类的行为与其他Map 实现的行为略有不同。
支持null键和null值。该类具有与类HashMap 有相似的性能特征,

猜你喜欢

转载自blog.csdn.net/uotail/article/details/82951749