开发中经常会用到数组跟集合,数组的长度是固定的,集合的长度是可变的。数组中只能放同一种类型的元素,集合存储的都是对象,类型可以不一致。
单列集合 java.util.Collection
双列集合 java.util.Map
Collections工具类常用方法:
1. addAll方法的作用:将数组的元素全部添加指定的集合中
2. shuffle方法的作用:对集合元素乱序
3. sort方法的作用:对集合元素进行排序:默认 升序
1. List集合常用方法
public void add(int index, E element)指定位置添加元素
public E get(int index) 获得指定位置的元素
public E remove(int index) 删除指定位置的元素,返回被删除的元素
public E set(int index,E element) 修改指定位置的元素为新元素element
1. LinkedList集合底层结构和特点
* 有序,有索引,可重复
* 底层结构:链表(查询慢,增删快)
2. LinkedList源码分析
无参数构造方法源码分析:没什么也没发生
每次根据索引获取元素时都会执行遍历操作,要么从头开始遍历要么从尾部开始遍历
如果索引值小于元素个数的一半,则从头开始遍历查找
如果索引值大于等于元素个数的一半,则从尾部开始遍历查找
LinkedList集合特有方法
public void addFirst(E e) :
public void addLast(E e) :
public E getFirst() :
public E getLast() :
public E removeFirst() :
public E removeLast() :
1. Set集合的特点:无序(存取顺序不一致),无索引,元素不可重复
2. Set集合常用子类
HashSet
LinkeHashSet
1. HashSet集合的特点和底层结构
* 特点:无序,无索引,元素不可重复
* 底层结构:哈希表(数组和链表的结合体)
2. HashSet集合遍历方式
* 迭代器和增强for
从HashSet集合中获取元素:只能采用遍历方式获取
LinkedHashSet的特点和结构
* 特点:无索引,元素不可重复
* 底层结构:哈希表(数组和链表的结合体)+链表
* 继承HashSet:能够保证存取顺序一致