List Map Set
List 常用方法及其重要实现类
void add(E element,int index) //把E类型的元素element 添加到下标Index上
boolean add(E e) // 把元素e加到此列表的队尾,返回 是否成功
boolean addAll(int index,Collection<? extends E> c) //把 E类集合的子类或者自身类 从index开始插到此列表当中
boolean addAll(Collection<? extends E>c) //按照迭代器返回的位置加到此列表的末尾
void clear() //删除列表中的所有元素
boolean contain(Object o) // 如果列表中包含元素o 返回true
boolean contain(Collection<?> c) //如果列表包含集合c中的所有元素,返回true
list.of(任意个数); //不可改变
E get(int index) //返回下标元素
int hashCode() //返回此列表当中的哈希码值
int indexOf(Object o) //返回此列表中第一次出现元素o的下标 如果没有 则返回-1;
boolean isEmpty() //如果此列表不包含任何元素 返回true
literator listIiterator() //以适当的顺序返回该列表中的元素迭代器
literator listIterator(int index) //从指定位置 返回列表中元素的列表迭代器
default void sort(Comparator<? super E> c) 根据指定的Comparator引发的顺序对此列表进行排序。
int size() //返回此列表中的元素数
E set(int index, E element) //用指定的元素替换此列表中指定位置的元素 返回被替换的元素
E remove(int index) //删除此列表中指定位置的元素 返回被删除的元素。
boolean remove(Object o) //从该列表中删除指定元素的第一个匹配项(如果存在)
boolean removeAll(Collection<?> c) //从此列表中删除指定集合中包含的所有元素
ArrayList Vector LinkedList的区别
ArrayList 和Vector是 数组结构 LibkedLIst 是双向数据结构
ArrayList LinkedList 线程不安全 查找便利,增删慢 Vector 线程安全 查找慢,增删快
ArrayList 与 Vector 构造方法有些不一样,扩容的方式不一样,前者是增加1.5倍(>> 1)后者增加指定容量,(可在构造方法中定义)
ArrayList() //构造一个初始容量为10的空列表。
ArrayList(int initialCapacity) //构造具有指定初始容量的空列表。
ArrayList(Collection<? extends E> c) //按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表。
Vector() //构造一个空向量,使其内部数据数组的大小为 10 ,其标准容量增量为零。
Vector(int initialCapacity) //构造一个具有指定初始容量且容量增量等于零的空向量。
Vector(int initialCapacity, int capacityIncrement) //构造具有指定初始容量和容量增量的空向量。
Map //Mapping 的缩写
void clear() 从此映射中删除所有映射(可选操作)。
boolean containsKey(Object key) 如果此映射包含指定键的映射,则返回 true 。
boolean containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true 。
default void forEach(BiConsumer<? super K,? super V> action) 对此映射中的每个条目执行给定操作,直到处理完所有条目或操作引发异常。
V get(Object key) 返回指定键映射到的值,如果此映射不包含键的映射,则返回 null 。
Set keySet() 返回此映射中包含的键的Set视图。
static <K,V>
Map<K,V> of() 返回包含零映射的不可修改映射。
V put(K key, V value) 将指定的值与此映射中的指定键相关联(可选操作)。
void putAll(Map<? extends K,? extends V> m) 将指定映射中的所有映射复制到此映射(可选操作)。
V remove(Object key) 如果存在,则从该映射中移除键的映射(可选操作)。
default boolean remove(Object key, Object value) 仅当指定键当前映射到指定值时才删除该条目的条目。
int size() 返回此映射中键 - 值映射的数量。
Collection values() 返回此映射中包含的值的Collection视图。
Set keySet() 返回此映射中包含的键的Set视图。
HashMap Hashtable ConcurrentHashMap
HashMap 线程不安全 多桶同时 效率高
Hashtable 线程安全 单桶 效率低
ConcrrentHashMap 采用分段锁机制 每个桶一个 线程安全 效率比较高
Set
HashSet
HashSet() 构造一个新的空集; 支持HashMap实例具有默认初始容量(16)和加载因子(0.75)。
HashSet(int initialCapacity) 构造一个新的空集; 支持HashMap实例具有指定的初始容量和默认加载因子(0.75)。
HashSet(int initialCapacity, float loadFactor) 构造一个新的空集; 支持HashMap实例具有指定的初始容量和指定的加载因子。
TreeSet
储存是有序的
如果是自定义的类 则需要使用comparable 方法!