Collection:(如果有自定义类的话,需要重写hashCode()和equals()方法)一个一个进行存储
---------子接口① : List (有序,可重复) 实现类:ArrayList(主要),LinedList,vector;
ArrayList:底层结构:Object数组(动态数组)
线程不安全的、效率高;
在添加数据、查找数据时,效率较高;在插入、删除数据时,效 率较低
LinedList:底层结构:双向链表
特点 :有序,可重复
在对集合中的数据进行频繁的删除、插入操作时,建议使用此类
Vector :底Object数组
特点 :有序,可重复
线程安全的、效率低
---------子接口②:Set(无序,不可重复)
HashSet:(主要):底层存储:数组+单向链表+红黑树结构
LinedHashSet :底层存储:数组+单向链表+红黑树结构 ,再加一 组 双向链表 (用于记录元素的先后顺序,使得元素的添加和遍历顺序一致);
TreeSet:红黑树存储,在添加元素时,按照指定元素的属性大小顺序进行遍历
Map :一对一对进行存储
HashMap:主要实现类,线程不安全,效率高,可以添加null的key和value, 存储结构: 红黑树+数组+单向链表
特点:HashMap的key集合是无序的,不可重复的,相当于Set集合,------>重写key所在 类 的hashCode()和equals(); value集合是无序的,可重复的,相当于Collection集合。------> 重 写value所在类的equals()类 ; 所有的entry是无序的,不可重复的,相当于Set集合。
Collection和Collections的区别:
Collection(接口):集合框架用来存储一个一个数据的接口,又分为List和Set等子接口
Collections(工具类):用于操作集合框架的一个工具类。此时的集合框架包括:Set,List,Map