java容器
java容器作为数据结构的标准实现,包含有Map, Collection(Queue, Set, List),上面主要为接口的定义,包含了常用的功能数据结构.
接口定义了功能,接口有多种具体实现,不同的实现方式,会有不同的适用场景,在不同的场景下的算法效率不同.

Iterator是用户遍历Collection类的,在for(T t:Collection){}语法中,内部是调用的Iterator相关接口.
List
List的主要实现有LinkedList和ArrayList,如果需要随机访问,优先用ArrayList,有RandomAccess接口可以判断是否支持随机访问;如果需要频频增删,优先使用LinkedList.
Map
Map的实现数据结构有Hash和Tree.其区别是Hash无法排序,Tree是可以排序(SortedMap)的, 同时TreeMap也实现了NavigableMap接口,可以实现TreeMap的更精确的查找.
TreeMap, SortedMap, NavigableMap三者的关系如下:

另外有几种特殊的实现, 一个是针对使用场景,可以自动释放键值对的WeakHashMap;另一个是针对访问频率,访问频率越高,放在前面的,LinkedHashMap; 其值可以直接使用==进行比较的为IdentityHashMap.
为了方便遍历,Map实现有三种视图, KeySet, EntrySet, Values,其中:
- KeySet为Map中Key值的集合
- EntrySet为Map中(Key,Value)键值对的集合
- Values为Map中值的集合
Set
Set和Map的实现方式比较类似,因为都是需要查询,使用HashTable和Tree实现的.所以Set最主要的实现方式是HashSet和TreeSet,同样HashSet不能排序,TreeSet可以排序.
Java中HashTable的实现方式:
采用数组(Array)+桶(Bucket)方式实现,数组的长度为桶的个数.结构大致如下:

Queue
队列主要有PriorityQueue实现,也可以使用ArrayList作为队列使用.
本文详细介绍了Java容器的不同类型及其应用场景,包括List、Map、Set和Queue等,并深入探讨了各种容器的具体实现方式,如ArrayList、LinkedList、HashMap、TreeMap、HashSet、TreeSet及PriorityQueue等,还介绍了用于遍历容器的方法。
867

被折叠的 条评论
为什么被折叠?



