泛型
- 概念:
- 通常用于结合集合来使用,标志就是<>,通常用来检查集合中元素的类型。generic
- 作用:
- 1.是可以把报错提前在编译时期,而不是运行时才抛出异常
- 2.可以写出通用代码
集合
Collection
- 概念
- 是集合中的父接口,包含两个重要的子接口
- 源码摘抄
public interface Collection<E> extends Iterable<E>
- 接口
List
- 特点
- 元素有序,都有索引,可以重复存放元素,可以存
null
- 元素有序,都有索引,可以重复存放元素,可以存
- 源码摘抄
public interface List<E> extends Collection<E>
- 特有方法
-void add(int index, E element) -void add(int index, E element) -boolean addAll(int index, Collection<? extends E> c) -E get(int index) -int indexOf(Object o) -int lastIndexOf(Object o) -ListIterator<E> listIterator() -ListIterator<E> listIterator(int index) -E remove(int index) -E set(int index, E element)用指定元素替换列表中指定位置的元素(可选操作)。 -List<E> subList(int fromIndex, int toIndex) 返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图
- 实现类
ArrayList
- 源码摘抄
public class ArrayList<E> extends AbstractList<E> implements List<E>
- 特点
- 元素有序,都有索引,可以重复存放元素,可以存
null
- 底层维护了一个
Object[]
,里面存的都是Object
对象 - 数组的默认容量是10,超出容量是底层会自动完成扩容
- 扩容方式源码截抄:
int newCapacity = oldCapacity + (oldCapacity >> 1);
- 扩容方式源码截抄:
- 新的容量=老容量+老容量/2的1次方,就相当于扩容是1.5倍的方式
- 元素有序,都有索引,可以重复存放元素,可以存
- 创建对象
ArrayList();构造一个初始容量为10的空列表
- 源码摘抄
LinkedList
- 特点
- 底层维护了一个链表,适合新增和删除的业务,不适合查询
- 数据有序,有下标,可重复
- 源码摘抄
public class LinkedList<E>extends AbstractSequentialList<E>
- 创建对象
LinkedList()
- 特点
- 特点
- 概念
Set
- 源码摘抄:
public interface Set<E> exnteds Collection<E>
- 特点:
- 元素不能重复
- 元素没有下标
- 元素无序
- 接口
HashSet
- 概述
- 底层是一个哈希表/散列表
- 源码摘抄:
public class HashSet<E> extends AbstractSet<E> implements Set<E>,Cloneable,Serializable
- 创建对象:
-HashSet()构造一个新的空set,其底层 HashMap 实例的默认初始容量是 16,加载因子是 0.75。
- 概述
Map
- 源码摘抄
public interface Map<K,V>
- 概述
- 将键映射到值的对象,是一个键值对的形式出现,键不能重复,每个键对应一个值
- 特点
- 可以根据键,提供对应的值
- 键不允许重复,如果重复值会被覆盖
- 存放的都是无序数据
- 初始容量是16,默认的加载因子是0.75
- 常用方法:
- V put(K key, V value) - V get(Object key) - void clear() -boolean containsKey(Object key) -boolean containsValue(Object value) -boolean equals(Object o) -int hashCode() -boolean isEmpty() -V remove(Object key) -int size() -Collection<V> values() -void putAll(Map<? extends K,? extends V> m) -Set<Map.Entry<K,V>> entrySet() -Set<K> keySet()
Colletcions
工具类
-
常用方法:
-Collections.sort(List<> list):根据元素的自然顺序 对指定列表按升序进行排序。 -Collections.max():根据元素的自然顺序,返回给定 collection 的最大元素。 -Collections.min():根据元素的自然顺序 返回给定 collection 的最小元素。 -Collections.swap(List,i,j):在指定列表的指定位置处交换元素。 -Collections.addAll()