java 容器基本组成
JAVA集合框架图
Java容器的作用:持续存储对象
|-- Collection
|--|-- List
|--|-- |-- LinkedList
|--|-- |-- ArrayList
|--|-- |-- Vector
|--|-- |-- |-- Stack
|--|-- Set
|--|-- |-- HashSet
|--|-- |-- |-- LinkedHashSet
|--|-- |-- TreeSet
|--|-- Queue
|-- Map
|--|-- Hashtable
|--|-- HashMap
|--|-- WeakHashMap
- Collection:是一个接口,声明了集合的一些基本操作
- List :Collection子接口, 必须按照插入的顺序保存元素,允许重复
- LinkedList : 实现类,链表实现, 增删快, 查找慢 ,线程不安全
- ArrayList : 实现类,数组实现, 查找快, 增删慢 ,线程不安全
- Vector: 实现类,和ArrayList原理相同, 但线程安全, 效率略低
- Stack: 栈:实现了入栈,出栈的操作 ,规则:先进后出
- set:Collection子接口 ,无序保存,不能有重复的元素。线程不安全
- HashSet: 实现类,无序性:(根据hash值来存),不可重复性(通过 equals()和hashcode()方法)
- LinkedHashSet :有序性(底层使用 LinkedHashMap 来保存所有元素,并且确保有序)
- TreeSet:SortedSet的实现类。元素中安升序排序,缺省是按照自然顺序进行排序(底层有SortedMap实现)
- HashSet: 实现类,无序性:(根据hash值来存),不可重复性(通过 equals()和hashcode()方法)
- Queue: 按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同)。规则:先进先出
- List :Collection子接口, 必须按照插入的顺序保存元素,允许重复
- Map:一组成对的“键值对”对象,允许你使用键来查找值。
- HashMap : 底层实现(数组+链表),非同步的,且允许null元素的存在,用于快速查找
- Hashtable:实现了一个Key-Value的哈希表,每一个非null元素都可作为Key或者Value,HashTable是同步的
Collection 和 Collections 有什么区别?
- java.util.Collection是集合类的根接口,它提供了对集合对象进行基本操作的通用接口方法。Java中没有提供这个接口的直接的实现类。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
- java.util.Collections是一个包装类。它包含有各种有关集合操作的静态多态方法。服务于Java的Collection框架。