集合框架---java做好的用来管理乱七八糟的一堆数据的java类库
集合----[乱七八糟的一堆]
框架---做好的java类库
java中的集合框架总体被分为2个大部分
第一个大部分是用来处理单列数据的集合,最大的接口是Collection接口
Collection接口之下有两个子接口:List接口/Set接口
List接口是用来处理有序的单列数据,可以有重复的元素。
ArrayList类
1.用来处理有序的单列数据,可以有重复的元素。
2.添加的元素会自动扩展。
3.动态数组结构,查询速度快,添加删除速度慢
LinkedList类
1.用来处理有序的单列数据,可以有重复的元素。
2.添加的元素会自动扩展。
3.双向链表结构,查询速度慢,添加删除速度快
Set接口是用来处理无序的单列数据,没有重复的元素,重复的元素算一个。
HashSet类
用来处理无序的单列数据,没有重复的元素,重复的元素算一个。
LinkedHashSet类
用来处理无序的单列数据,没有重复的元素,重复的元素算一个。
第二个大部分是用来处理键值对数据的集合,最大的接口是Map接口
例如: name[键]=zhangsan[值] 输的目录
HashMap类
1.用来处理键值对数据的集合
2.允许有null【键--null 值--null】
Hashtable类
1.用来处理键值对数据的集合
2.不允许有null
ConcurrentHashMap类
支持检索的完全并发性和更新的高预期并发性的哈希表
1.用来处理有序的单列数据,可以有重复的元素。
2.添加的元素会自动扩展。
3.动态数组结构,查询速度快,添加删除速度慢
构造方法:
ArrayList() 构造一个初始容量为10的空列表。
ArrayList(Collection c) 通过实现Collection 接口的子类/子接口对象创建一个列表ArrayList(int initialCapacity) 构造具有指定初始容量的空列表。
实例方法:
boolean add(Object o) 将指定的元素追加到此列表的末尾。
boolean contains(Object o) 如果此列表包含指定的元素,则返回 true 。
Object get(int index) 返回此列表中指定位置的元素。
int indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
int lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
Object remove(int index) 删除该列表中指定位置的元素。
boolean remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
Object set(int index, Object element) 用指定的元素替换此列表中指定位置的元素。
int size() 返回此列表中的元素数。
boolean isEmpty() 如果此列表不包含元素,则返回 true 。
void clear() 从列表中删除所有元素。
Iterator
1.用来处理有序的单列数据,可以有重复的元素。
2.添加的元素会自动扩展。
3.双向链表结构,查询速度慢,添加删除速度快
构造方法:
LinkedList() 构造一个空列表。
LinkedList(Collection c)通过一个实现Collection接口的子类/子接口对象创建一个列表
实例方法:
boolean add(Object o) 将指定的元素追加到此列表的末尾。
boolean contains(Object o) 如果此列表包含指定的元素,则返回 true 。
Object get(int index) 返回此列表中指定位置的元素。
int indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
int lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。
Object remove(int index) 删除该列表中指定位置的元素。
boolean remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。
Object set(int index, Object element) 用指定的元素替换此列表中指定位置的元素。
int size() 返回此列表中的元素数。
boolean isEmpty() 如果此列表不包含元素,则返回 true 。
void clear() 从列表中删除所有元素。
Iterator
多出一组对第一个元素和最后一个元素的操作方法
void addFirst(Object e) 在该列表开头插入指定的元素。
void addLast(Object e) 将指定的元素追加到此列表的末尾。
Object getFirst() 返回此列表中的第一个元素。
Object getLast() 返回此列表中的最后一个元素。
Object removeFirst() 从此列表中删除并返回第一个元素。
Object removeLast() 从此列表中删除并返回最后一个元素。
为什么LinkedList会比ArrayList多出一组对第一个元素和最后一个元素的操作方法?
因为ArrayList是动态数组结构,他在查找第一个元素和最后一个元素的时很麻烦,而LinkedList采用的是双向链表结构,这种结构在查找第一个元素和最后一个元素的时候是最快的
用来处理无序的单列数据,没有重复的元素,重复的元素算一个。
构造方法:
HashSet() 构造一个新的空集合; 默认初始容量(16)和负载因子(0.75)。
HashSet(Collection c) 构造一个包含指定集合中的元素的新集合。
HashSet(int initialCapacity) 构造一个新的空集合; 具有指定的初始容量和默认负载因子(0.75)。
HashSet(int initialCapacity, float loadFactor) 具有指定的初始容量和指定的负载因子。
实例方法
boolean add(Object e) 将指定的元素添加到此集合(如果尚未存在)。
void clear() 从此集合中删除所有元素。
boolean contains(Object o) 如果此集合包含指定的元素,则返回 true 。
boolean isEmpty() 如果此集合不包含元素,则返回 true 。
Iterator iterator() 返回此集合中元素的迭代器。
boolean remove(Object o) 如果存在,则从该集合中删除指定的元素。
int size() 返回此集合中的元素数(其基数)。
ikedHashSet类是HashSet类的子类
构造方法:
LikedHashSet() 构造一个新的空集合; 默认初始容量(16)和负载因子(0.75)。
LikedHashSet(Collection c) 构造一个包含指定集合中的元素的新集合。
LikedHashSet(int initialCapacity) 构造一个新的空集合; 具有指定的初始容量和默认负载因子(0.75)。
LikedHashSet(int initialCapacity, float loadFactor) 具有指定的初始容量和指定的负载因子。
实例方法
boolean add(Object e) 将指定的元素添加到此集合(如果尚未存在)。
void clear() 从此集合中删除所有元素。
boolean contains(Object o) 如果此集合包含指定的元素,则返回 true 。
boolean isEmpty() 如果此集合不包含元素,则返回 true 。
Iterator iterator() 返回此集合中元素的迭代器。
boolean remove(Object o) 如果存在,则从该集合中删除指定的元素。
int size() 返回此集合中的元素数(其基数)。
Map接口用来处理键值对数据的集合
键值对数据--一个完整的数据是由键和值两部分组成的一个数据值
例如: 书的目录就是典型的键值对数据
标题-----页码
键--------值
1.允许null的值和null键
2.数据保存是无序的
3.重复的键被算作是一个数据。
构造方法:
HashMap() 构造一个空的 HashMap ,默认初始容量(16)和默认负载系数(0.75)。
HashMap(int initialCapacity) 构造一个空的 HashMap具有指定的初始容量和默认负载因子(0.75)。
HashMap(int initialCapacity, float loadFactor) 构造一个空的 HashMap具有指定的初始容量和负 载因子。
HashMap(Map m) 构造一个新的 HashMap与指定的相同的映射 Map 。
实例方法:
void clear() 清空集合。
Object put(Object key, Object value) 向集合中添加键值对数据
boolean containsKey(Object key) 判断集合中是否包含指定的键
boolean containsValue(Object value) 判断集合中是否包含指定的值
Object get(Object key) 根据指定的键得到该键对应的值
boolean isEmpty() 判断集合是否为空。
int size() 得到集合中键值对元素的个数
V remove(Object key) 根基指定的键删除对应的键值对数据值
Set keySet() 得到集合中所有的键保存到Set集合中
Collection values() 得到集合中所有的值保存到Collection集合中
Set
//Set2.Hashtable类> entrySet() 得到集合中所有的键值对数据Set集合中 //1.需要给HashMap设置键和值的数据类型 // HashMap
1.数据保存是无序的
2.不能有null键/null值
3.重复的键被算作是一个数据。
4.线程安全
构造方法:
Hashtable() 构造一个新的,空的散列表,默认初始容量(11)和负载因子(0.75)。
Hashtable(int initialCapacity) 构造一个新的,空的哈希表,具有指定的初始容量和默认负载因子0.75
Hashtable(int initialCapacity, float loadFactor) 构造一个新的,空的哈希表,具有指定的初始容量和指定的负载因子。
Hashtable(Map t) 构造一个与给定地图相同的映射的新哈希表。
实例方法:
void clear() 清空集合。
Object put(Object key, Object value) 向集合中添加键值对数据
boolean containsKey(Object key) 判断集合中是否包含指定的键
boolean containsValue(Object value) 判断集合中是否包含指定的值
Object get(Object key) 根据指定的键得到该键对应的值
boolean isEmpty() 判断集合是否为空。
int size() 得到集合中键值对元素的个数
V remove(Object key) 根基指定的键删除对应的键值对数据值
Set keySet() 得到集合中所有的键保存到Set集合中
Collection values() 得到集合中所有的值保存到Collection集合中
Set
Enumeration
Enumeration
1.按照键的字母顺序排列(添加键值对数据时,键的数据类型要一致,否则无法排序,运行时会报错)
2.键不能为null
3.重复的键被算作是一个数据。
4.非线程安全
构造方法
TreeMap() 使用其键的自然排序构造一个新的空树状图。
TreeMap(Map extends K,? extends V> m) 构造一个新的树状图,其中包含与给定地图相同的映射,根据其键的自然顺序进行排序 。
实例方法:
void clear() 清空集合。
Object put(Object key, Object value) 向集合中添加键值对数据
boolean containsKey(Object key) 判断集合中是否包含指定的键
boolean containsValue(Object value) 判断集合中是否包含指定的值
Object get(Object key) 根据指定的键得到该键对应的值
boolean isEmpty() 判断集合是否为空。
int size() 得到集合中键值对元素的个数
V remove(Object key) 根基指定的键删除对应的键值对数据值
Set keySet() 得到集合中所有的键保存到Set集合中
Collection values() 得到集合中所有的值保存到Collection集合中
Set
ConcurrentHashMap类线程安全支持检索是的高并发处理。
如果需要线程安全的并发实现,那么建议使用ConcurrentHashMap代替Hashtable。
Collections类
Collections 类是Java提供的一个操作 Set、List 和 Map 等集合的工具类,服务于Collection框架,不能实例化。
Collections 类提供了许多操作集合的静态方法,我们借助这些静态方法可以实现集合元素的排序、查找替换和复制等操作。
sort()排序
reverse()反转方法
Collections和Collection的区别
Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。
Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。



