Java集合的类型主要有图中的几种,本文主要集合怎么用:定义和方法。
List
arraylist 底层数组
频繁访问列表中的某一个元素。
只需要在列表末尾进行添加和删除元素操作。
import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<E> objectName =new ArrayList<>(); // 初始化
arrayList.add(); —————— 加入一个元素(Object)
arrayLIst.addAll(); —————— 加入集合元素(Collection
arrayLIst.set(index, "a"); // 修改index的值
arrayLIst.remove(index); // 删除第index-1个元素
arrayLIst.size();//集合的元素数量
for (int i = 0; i < sites.size(); i++) {
System.out.println(sites.get(i));
}//迭代集合元素
Collections.sort(arrayLIst); // 按字母排序
Collections.sort(arrayLIst); // 按数字排序
方法 | 描述 |
将元素插入到指定位置的 arraylist 中 | |
添加集合中的所有元素到 arraylist 中 | |
删除 arraylist 中的所有元素 | |
复制一份 arraylist | |
判断元素是否在 arraylist | |
通过索引值获取 arraylist 中的元素 | |
返回 arraylist 中元素的索引值 | |
删除存在于指定集合中的 arraylist 里的所有元素 | |
删除 arraylist 里的单个元素 | |
返回 arraylist 里元素数量 | |
判断 arraylist 是否为空 | |
截取部分 arraylist 的元素 | |
替换 arraylist 中指定索引的元素 | |
对 arraylist 元素进行排序 | |
将 arraylist 转换为数组 | |
将 arraylist 转换为字符串 | |
设置指定容量大小的 arraylist | |
返回指定元素在 arraylist 中最后一次出现的位置 | |
保留 arraylist 中在指定集合中也存在的那些元素 | |
查看 arraylist 是否包含指定集合中的所有元素 | |
将 arraylist 中的容量调整为数组中的元素个数 | |
删除 arraylist 中指定索引之间存在的元素 | |
将给定的操作内容替换掉数组中每一个元素 | |
删除所有满足特定条件的 arraylist 元素 | |
遍历 arraylist 中每一个元素并执行特定操作 |
Linklist 底层链表
你需要通过循环迭代来访问列表中的某些元素。
需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。
import java.util.LinkedList; // 引入 LinkedList 类
LinkedList<E> list = new LinkedList<E>(); // 普通创建方法
LinkedList<E> list = new LinkedList(Collection<? extends E> c); // 使用集合创建链表
方法 | 描述 |
public boolean add(E e) | 链表末尾添加元素,返回是否成功,成功为 true,失败为 false。 |
public void add(int index, E element) | 向指定位置插入元素。 |
public boolean addAll(Collection c) | 将一个集合的所有元素添加到链表后面,返回是否成功,成功为 true,失败为 false。 |
public boolean addAll(int index, Collection c) | 将一个集合的所有元素添加到链表的指定位置后面,返回是否成功,成功为 true,失败为 false。 |
public void addFirst(E e) | 元素添加到头部。 |
public void addLast(E e) | 元素添加到尾部。 |
public boolean offer(E e) | 向链表末尾添加元素,返回是否成功,成功为 true,失败为 false。 |
public boolean offerFirst(E e) | 头部插入元素,返回是否成功,成功为 true,失败为 false。 |
public boolean offerLast(E e) | 尾部插入元素,返回是否成功,成功为 true,失败为 false。 |
public void clear() | 清空链表。 |
public E removeFirst() | 删除并返回第一个元素。 |
public E removeLast() | 删除并返回最后一个元素。 |
public boolean remove(Object o) | 删除某一元素,返回是否成功,成功为 true,失败为 false。 |
public E remove(int index) | 删除指定位置的元素。 |
public E poll() | 删除并返回第一个元素。 |
public E remove() | 删除并返回第一个元素。 |
public boolean contains(Object o) | 判断是否含有某一元素。 |
public E get(int index) | 返回指定位置的元素。 |
public E getFirst() | 返回第一个元素。 |
public E getLast() | 返回最后一个元素。 |
public int indexOf(Object o) | 查找指定元素从前往后第一次出现的索引。 |
public int lastIndexOf(Object o) | 查找指定元素最后一次出现的索引。 |
public E peek() | 返回第一个元素。 |
public E element() | 返回第一个元素。 |
public E peekFirst() | 返回头部元素。 |
public E peekLast() | 返回尾部元素。 |
public E set(int index, E element) | 设置指定位置的元素。 |
public Object clone() | 克隆该列表。 |
public Iterator descendingIterator() | 返回倒序迭代器。 |
public int size() | 返回链表元素个数。 |
public ListIterator listIterator(int index) | 返回从指定位置开始到末尾的迭代器。 |
public Object[] toArray() | 返回一个由链表元素组成的数组。 |
public T[] toArray(T[] a) | 返回一个由链表元素转换类型而成的数组。 |
Set
Hashset 底层调用了hashmap
元素不重复、不允许为空、无序、线程不安全
import java.util.HashSet; // 引入 HashSet 类
HashSet<String> sites = new HashSet<String>();
Sites.add(“hello”);//添加元素
boolean sites.contains(“world”);//是否存在元素
sites.remove(“hello”);//删除元素
sites.clear();//清除集合中的数据
sites.size();//集合中的元素数量
for(int i : sites){i}//for each迭代集合
Map
Hashmap //底层是hash
散列表、键值对映射、键-值的数据类型可以不同也可以相同、不支持线程同步、无序、最多允许一条记录为空、访问速度快
Map<String,String> map = Map.of(“bb”,”bingbing”);//定义集合
Map<Integer,String> map2 = Map.of(1,”bb”);
map.put(1,”bb”);//添加元素
map.get(key);//访问元素
map.remove(key);//删除key对应的value元素
map.size();//map集合的元素数量
方法 | 描述 |
删除 hashMap 中的所有键/值对 | |
复制一份 hashMap | |
判断 hashMap 是否为空 | |
计算 hashMap 中键/值对的数量 | |
将键/值对添加到 hashMap 中 | |
将所有键/值对添加到 hashMap 中 | |
如果 hashMap 中不存在指定的键,则将指定的键/值对插入到 hashMap 中。 | |
删除 hashMap 中指定键 key 的映射关系 | |
检查 hashMap 中是否存在指定的 key 对应的映射关系。 | |
检查 hashMap 中是否存在指定的 value 对应的映射关系。 | |
替换 hashMap 中是指定的 key 对应的 value。 | |
将 hashMap 中的所有映射关系替换成给定的函数所执行的结果。 | |
获取指定 key 对应对 value | |
获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值 | |
对 hashMap 中的每个映射执行指定的操作。 | |
返回 hashMap 中所有映射项的集合集合视图。 | |
keySet() | 返回 hashMap 中所有 key 组成的集合视图。 |
返回 hashMap 中存在的所有 value 值。 | |
添加键值对到 hashMap 中 | |
对 hashMap 中指定 key 的值进行重新计算 | |
对 hashMap 中指定 key 的值进行重新计算,如果不存在这个 key,则添加到 hasMap 中 | |
对 hashMap 中指定 key 的值进行重新计算,前提是该 key 存在于 hashMap 中。 |
Iterator 访问集合的方法
import java.util.Iterator;
ArrayList<String> sites = new ArrayList<String>();
Iterator<String> it = sites.iterator();li
调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。
调用 it.hasNext() 用于检测集合中是否还有元素。
调用 it.remove() 将迭代器返回的元素删除。