collection各实现类用途建议

Collection接口:集合,下面有两大分支,List和Set,期中List是有序队列,元素可以重复,Set是集合,元素不能重复。

AbstractCollection抽象类:实现了Collection大部分的接口。
AbstractList抽象类:继承了AbstractCollection抽象类。AbstractSet抽象类:同样继承了AbstractCollection抽象类。
List和Set实现类都分别继承了AbstractList和AbstractSet抽象类。

List类的实现类常用的是LikedList、ArrayList、Vector和Stack;
LinkedList:继承了AbstractSequence,是一个双向链表。可以当做堆栈、队列或者双向队列使用,支持序列化。
ArrayList:是一个数组队列,相当于动态数组,提供了添加、修改、删除和遍历功能,是非线程安全的。建议单线程使用ArrayList,多线程使用Vector或者CopyOnWriteArrayList。
Vector:是一个矢量队列,与ArrayList类似,但是属于线程安全的。
Stack:栈,先进后出,继承于Vector。

ArrayList和LinkedList区别
ArrayList可以看做数组,可以快速随机访问,插入对象的速度慢,整个数组要后移操作复杂。
LinkedList可以看做链表,插入删除数据相当快速方便,不能随机访问,只能遍历查找,随机读取速度慢。

Map接口:映射接口,Map中存储的内容是键值对(key—value)
Map接口的实现类:TreeMap、HashMap、WeakHashMap和HashTable
TreeMap:有序的键值对,通过红黑树实现的,可用于给Map集合中的键进行排序,非线程安全。
HashMap:是基于“拉链法”实现的散列表,键值对,但不保证次序,非线程安全。
Hashtable:是基于“拉链法”实现的散列表,线程安全
WeakHashMap:基于“拉链法”实现的散列表,弱键。当“弱键”被GC回收时,它对应的键值对也会被从WeakHashMap中删除;而HashMap中的键是强键

Set接口的实现类有HashSet类和TreeSet类

HashSet类:依赖于HashMap实现,HashSet元素也是无序的。

TreeSet类:依赖于TreeMap实现,TreeSeet元素是有序的。

时间: 2024-10-06 03:15:32

collection各实现类用途建议的相关文章

java-Collection类-各实现类用途总结

Collection接口:集合,下面有两大分支,List和Set,期中List是有序队列,元素可以重复,Set是集合,元素不能重复. AbstractCollection抽象类:实现了Collection大部分的接口.AbstractList抽象类:继承了AbstractCollection抽象类.AbstractSet抽象类:同样继承了AbstractCollection抽象类.List和Set实现类都分别继承了AbstractList和AbstractSet抽象类. List类的实现类常用的

常用容器(Collection)实现类总结(三)——HashMap

HashMap简略说明: 基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同.)此类不保证映射的顺序,特别是它不保证该顺序恒久不变. (Hash table based implementation of the Map interface. This implementation provides all of the optional map op

常用容器(Collection)实现类总结(四)——HashSet

HashSet简略说明: 此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持.它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用 null 元素. (This class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the s

常用容器(Collection)实现类总结(一)——ArrayList

ArrayList简略说明: List 接口的大小可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小. (Resizable-array implementation of the List interface. Implements all optional list operations, and permits all elements, including null. In add

JAVA中Collection接口和Map接口的主要实现类

Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set. 所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collectio

Collection类集

Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的"子接口"如List和Set. 所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Coll

集合(Collection)类

集合(Collection)类是专门用于数据存储和检索的类.这些类提供了对栈(stack).队列(queue).列表(list)和哈希表(hash table)的支持.大多数集合类实现了相同的接口. 集合(Collection)类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等.这些类创建 Object 类的对象的集合.在 C# 中,Object 类是所有数据类型的基类. 各种集合类和它们的用法 下面是各种常用的 System.Collection 命名空间的类.点击下面的链接查看

黑马程序员-java基础-集合框架-Collection、List、Set

第一讲:体系概述 一.概述 1.  作用:用于存放对象的容器 2.  特点:只用于存储对象,集合长度可变,集合可以存储不同类型的对象: 3.  与数组的区别:虽然数据也可以存储对象,但数组的长度是固定的,而集合长度是可变的,集合类的出现可以解决现实生活中数量不确定的问题: 4.  常用的集合类及结构 第二讲:共性方法 集合实现了Collection接口,Collection接口声明了如下常用方法: 1)  向集合中添加元素:add(Object obj).addAll() add()方法用于向集

Java-容器类

Java容器类包含List.ArrayList.Vector及map.HashTable.HashMap jdk1.4容器类关系图 虚线框表示接口. 实线框表示实体类. 粗线框表示最常用的实体类. 点线的箭头表示实现了这个接口. 实线箭头表示类可以制造箭头所指的那个类的对象. 容器类持有对象方式 1, Collection:只允许每个位置上放一个对象.它包括“以一定顺序持有一组对象”的List,以及“只能允许添加不重复对象”的Set.你可以用add()方法向Collection对象中加元素. 2