赞
踩
集合List和Set都继承于Collection,都是单个储存元素的都是可以迭代的。
特点是是可重复、有序的,存入和迭代取出的次序相同。List的子类又有ArrayList、LinkedList、Vector。
底层采用数组结构存储,适合做查询笔试和频繁的增删,单线程操作效率高,随机增删效率低,多线程不安全。
初始10,按照1.5倍扩容
和ArrayList底层原理相同,但是使用sychorinized保证了多线程安全,效率低少使用。
初始10,按照2倍扩容
底层采用双向链表结构存储元素,增删效率高,随机查找效率低。不能通过数学表达式计算被查找元素的内存地址,每一次查找都是从头节点开始遍历,直到找到为止。所以LinkedList集合检索/查找的效率较低。
特点是元素无序不可重复,不能按照index取值,适合做数据字典。
底层是一个哈希表(散列表),实际是一个HashMap。
特点是存取无序且不可重复,但是存的元素可以自动按照大小排列。
继承于SortedSet,底层是一个二叉树TreeMap。
双列集合Map,和Collection集合没有关系,Map集合以key-value的形式储存元素,key和value都是存储java对象的内存地址,所有Map集合的特点都是无序不可重复。Map和Set集合存储元素的特点相同。
底层是哈希表,非线程安全,在JDK8后如果哈希表单向元素超过8个就编程红黑树结构,红黑树的节点数量小于6个又编程单项链表结构,为的是提交检索效率。
初始容量是16,按照2倍扩容。
底层也是哈希表,用sychorinized是线程安全的,key和value不允许为null。
初始容量11,按照 原容量*2+1 方式扩容。
继承于HashTable,线程安全,key和value只能是String类型。
方法名 | 说明 |
---|---|
boolean add(E e) | 添加元素到集合的末尾(追加) |
boolean remove(Object o) | 删除指定的元素,成功则返回true(底层调用equles) |
void clear() | 清空集合 |
boolean contains(Object o) | 判断元素在集合中是否存在,存在则返回true(底层调用equles) |
boolean isEmpty() | 判断集合是否为空,空则返回true |
int size() | 返回集合中元素个数 |
Iterator iterator() | 迭代器 |
方法名 | 说明 |
---|---|
public ArrayList() | 创建一个空集合 |
public boolean add(E e) | 将指定的参数元素追加到集合的末尾 |
public void add(int index ,E e) | 在集合的指定位置添加指定的元素(插入元素) |
public void addAll(E object) | 用于将指定集合中所有元素添加到当前集合中 |
public boolean remove(Object o) | 删除指定的元素,成功则返回true |
public E remove(int index) | 删除指定索引位置的元素,返回被删除的元素 |
public E set(int index,E e) | 修改指定索引位置的元素,返回修改前的元素 |
public E get(int index) | 获取指定索引对应的元素 |
public int size() | 获取结合中元素个数 |
方法名 | 说明 |
---|---|
V put(K key,V value) | 设置键值对 |
V remove(Object key) | 删除元素 |
void clear() | 清空集合 |
boolean containsKey(Object key) | 判断键是否存在,存在则返回true |
boolean containsValue(Object value) | 判断值是否存在,存在则返回true |
boolean isEmpty() | 判断集合是否为空 |
int size() | 获取集合元素个数 |
参考:https://blog.csdn.net/zdl66/article/details/126251818
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。