本文章旨在复习下JAVA集合的一些基本内容。
集合可以下分为Collection单列集合、Map双列集合还有一种queue集合,但最后一种由于我没怎么深入学习过,所以我暂且不提。毕竟我只知道我知道的,我只分享我了解的。我讲述的内容脑图如下图:
首先要说明一点就是Collection、Map、List、Set都是接口,而ArratList、LinkeList、HashSet、TreeSet、HashMap、TreeMap是实现类。而那些实现类都是实现了对应的接口。
Collection接口下面有如下几个常用方法:
boolean add(E e) 添加元素 boolean remove(Object o) 移除指定元素元素 boolean removeif(Object o) 根据条件删除 void clear() 清空集合 boolean contains(Object o) 判断集合中是否存在指定的元素//可以传lamdba表达式 boolean isEmpty() 判断集合是否为空 int size() 集合的长度 iterrator() 获取一个迭代器对象 而迭代器对象可以使用下面两个常用方法: hasNext();//判断当前位置元素是否可以被取出 next();//取出当前位置的对象,将迭代器往后移动一个索引的位置
实现Iterator接口后可以使用增强for,增强for使用方法为:
for(元素数据类型 变量名:数组或者Collection集合){}
List接口:
List集合是有序集合,怎么存怎么取,有序,有索引,可重复,List接口继承了Collection接口,所以List集合能使用Collection下面的所有方法。同时List下面有其独特的方法:
viod add(int index,E e) 在此集合中的指定位置插入指定元素 E remove(int index) 删除指定索引位置的元素,返回被删除的元素 E set(int index,E e) 修改指定索引处的元素,返回被修改的元素 E get(int index) 返回指定索处的元素
而List又有两个具体的实现类,ArrayList与LinkedList。
ArrayList底层数据结构时数组,查询快,增删慢
LinkedList底层数据结构数链表,查询慢,增删快,同时,由于链表的特性,LinkedList有其独特方法:
void addFirst(E e) 在该列开都插入指定的元素 void addLast(E e) 将指定的元素追加到此列表的末尾 E getFirst() 返回此列表中的第一个元素 E getLast() 返回次列表中的最后一个元素 E removeFirst() 移除第一个元素 E removeLast() 移除最后一个元素Set接口:
Set集合是无序集合,存储顺序不一致,没有索引,可以去除重复,Set接口继承了Collection接口,所以Set集合能使用Collection下面的所有方法。Set集合有一下两个实现类:
HashSet:底层数据结构是哈希表,通过hashCode和equals方法进行去重的,在使用HashSet存储自定义对象的时候,那个类必须重写hashCode和equals方法
TreeSet:底层是红黑树,可以将元素按照规则进行排序,但前提需要指定排序规则,用对象实现Comparable接口,重写里面的compareTo方法定制规则
Map接口:他有以下常用方法:
V put(K key,V value) 添加元素 V remove(Object key) 根据键删除键值对元素 void clear() 移除所有的键值对元素 boolean containsKey(Object key) 判断集合是否包含指定的键 boolean containsValue(Object value) 判断集合是否包含指定的值 boolean isEmpty() 判断集合是否为空 int size() 集合的长度,也就是集合中键值对的个数 SetkeySet() 获取所有键的集合 V get(Object key) 根据键获取值 Set > entrySet() 获取所有键值对对象的集合 K getKey() 获得键 V getValue() 获得值
遍历方法:
第一种:先获取所有的键,再去遍历键,然后用键去获取值
第二种:先把键值对放到集合里面遍历,然后直接获取键值对的K,V
实现类,底层是哈希表结构,依赖hashCode方法和equals方法保证键的唯一,如果键要存储的是自定义对象,需要重写hashCode方法和equals方法
TreeMap:实现类,底层是红黑树结构,以来自然排序或者镖旗排序,对键进行排序,如果键存储的是自定义对象,需要实现Comparable接口或者在创建TreeMap对象的时候给出比较器的排序规则
创建不可变集合:static List of(E…elements) 创建一个具有指定元素的List集合对象
static Set of(E…elements) 创建一个具有指定元素的Set集合对象
static
最后下一次会复习下集合是如何实现的。



