Java基础集合简单总结

集合

Collection单列集合有List 和 Set

List集合有:

ArrayList集合

特色:
1.存取有序 能够重复 有索引
2.底层是数组实现,查询快,增删慢
ArrayList底层:

1.ArrayList底层是一个数组数组

2.当初始化ArrayList,数组的长度为0spa

3.当第一次添加的时候,数组的长度为10对象

4.之后添加时,若是数组的长度不知足时,进行扩容 ,按1.5来进行扩容排序

5.扩容以后,将原数组中的元素拷贝到新的数组中索引

ArrayList的特有方法
方法名 描述
void add(int index,E element) 在此集合中的指定位置插入指定的元素
E remove(int index) 删除指定索引处的元素,返回被删除的元素
E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
E get(int index) 返回指定索引处的元素
ArrayList是Collection接口的实现类调用方法:
方法名 说明
boolean add(E e) 添加元素
boolean remove(Object o) 从集合中移除指定的元素
boolean removeIf(Object o) 根据条件进行移除
void clear() 清空集合中的元素
boolean contains(Object o) 判断集合中是否存在指定的元素
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中元素的个数

LinkedList集合

特色:接口

1.存取有序 能够重复 有索引element

2.底层是链表结构实现,查询慢 增删快

 

特有方法:
方法名 说明
public void addFirst(E e) 在该列表开头插入指定的元素
public void addLast(E e) 将指定的元素追加到此列表的末尾
public E getFirst() 返回此列表中的第一个元素
public E getLast() 返回此列表中的最后一个元素
public E removeFirst() 今后列表中删除并返回第一个元素
public E removeLast() 今后列表中删除并返回最后一个元素

set集合有

hashset集合

特色rem

1.不能够存储重复元素 存储顺序不一致 没有索引 底层是hash表get

2.没有索引,可使用迭代器和加强for进行操做hash

 

HashSet是Collection接口的实现类调用方法:
方法名 说明
boolean add(E e) 添加元素
boolean remove(Object o) 从集合中移除指定的元素
boolean removeIf(Object o) 根据条件进行移除
void clear() 清空集合中的元素
boolean contains(Object o) 判断集合中是否存在指定的元素
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中元素的个数

 

TreeSet集合

特色

1.不能存储重复的元素 没有索引

2.能够将元素按照规则进行排序

3.没有索引,可使用迭代器和加强for进行操做

4.TreeSet的原理是红黑数,先获取左边,再获取中间,最后获取右边

 

TreeSet是Collection接口的实现类调用方法:
方法名 说明
boolean add(E e) 添加元素
boolean remove(Object o) 从集合中移除指定的元素
boolean removeIf(Object o) 根据条件进行移除
void clear() 清空集合中的元素
boolean contains(Object o) 判断集合中是否存在指定的元素
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中元素的个数

 

排序的方式有:

1.天然排序Comparable的使用

  1. 使用空参构造建立TreeSet集合

    • 用TreeSet集合存储自定义对象,无参构造方法使用的是天然排序对元素进行排序的

  2. 自定义的Student类实现Comparable接口

    • 天然排序,就是让元素所属的类实现Comparable接口,重写compareTo(T o)方法

  3. 重写接口中的compareTo方法

    • 重写方法时,必定要注意排序规则必须按照要求的主要条件和次要条件来写

2.比较器排序Comparator的使用

  • 用TreeSet集合存储自定义对象,带参构造方法使用的是比较器排序对元素进行排序的

  • 比较器排序,就是让集合构造方法接收Comparator的实现类对象,重写compare(T o1,T o2)方法

  • 重写方法时,必定要注意排序规则必须按照要求的主要条件和次要条件来写

 

 

Map双列集合有HashMap和 TreeMap

Map集合的定义:

Map集合又称为双列集合,双列集合中每一个元素中有两个值,主要用于存储具备映射关系的数据,这种关系是一一对应的

Map集合的特色:

键不能重复,值能够重复

键与值之间是一一对应的关系

(键+值)这个总体咱们称之为"键值对"或"键值对对象",在Java中又叫"Entry对象"

HashMap集合

特色:2

HashMap底层是哈希表结构

依赖hashCode方法和equals方法保证键的惟一

若是键要存储自定义对象,须要重写hashCode和equals方法

 

方法介绍

方法名 说明
V put(K key,V value) 添加元素
V remove(Object key) 根据键删除键值对元素
void clear() 移除全部的键值对元素
boolean containsKey(Object key) 判断集合是否包含指定的键
boolean containsValue(Object value) 判断集合是否包含指定的值
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中键值对的个数

第一种遍历方式

先把双列集合转为单列集合,再进行遍历

方法名 说明
Set<K> keySet() 获取全部键的集合
V get(Object key) 根据键获取值

第二种遍历方式

先把双列集合转为单列集合,再进行遍历

方法名 说明
Set<Map.Entry<K,V>>entrySet() 获取全部键值对对象集合
K getKey() 得到键值
V getValue() 得到值

TreeMap集合

特色: 能够排序

TreeMap底层是红黑树结构

依赖天然排序或者比较器排序,对键进行排序

若是键存储的是自定义对象,须要实现Comparable接口或者在建立TreeMap对象时候给出比较器排序规则

 

方法和HashMap同样

第一种遍历方式

先把双列集合转为单列集合,再进行遍历

方法名 说明
Set<K> keySet() 获取全部键的集合
V get(Object key) 根据键获取值

第二种遍历方式

先把双列集合转为单列集合,再进行遍历

方法名 说明
Set<Map.Entry<K,V>>entrySet() 获取全部键值对对象集合
K getKey() 得到键值
V getValue() 得到值
相关文章
相关标签/搜索