集合常用api

请添加图片描述

一、ArrayList

ArrayList是一个动态数组,允许快速随机访问元素。

  • add(E element):将指定的元素添加到列表的末尾。
ArrayList<String> list = new ArrayList<>();
list.add("item");
  • add(int index, E element):在指定位置插入元素。
list.add(2, "newItem");
  • get(int index):返回指定索引处的元素。
String item = list.get(0);
  • remove(int index):移除指定索引处的元素。
list.remove(1);
  • remove(Object o):移除指定的元素(如果存在)。
list.remove("itemToRemove");
  • size():返回列表中的元素个数。
int size = list.size();
  • set(int index, E element):将指定索引处的元素替换为新元素。
list.set(0, "replacedItem");
  • indexOf(Object o):返回指定元素在列表中第一次出现的索引,如果不存在则返回 -1。
int index = list.indexOf("searchItem");
  • lastIndexOf(Object o):返回指定元素在列表中最后一次出现的索引,如果不存在则返回 -1。
int lastIndex = list.lastIndexOf("searchItem");
  • isEmpty():检查列表是否为空。
boolean empty = list.isEmpty();
  • subList(int fromIndex, int toIndex):返回指定范围内的子列表。
List<String> subList = list.subList(1, 3);

二、LinkedList

LinkedList实现了List接口,同时还具有队列和栈的操作方法。

  • addFirst(E e):在列表开头添加元素。
LinkedList<String> list = new LinkedList<>();
list.addFirst("firstItem");
  • addLast(E e):在列表末尾添加元素(与add(E element)类似)。
list.addLast("lastItem");
  • getFirst():获取列表的第一个元素。
Object first = list.getFirst();
  • getLast():获取列表的最后一个元素。
Object last = list.getLast();
  • removeFirst():移除并返回列表的第一个元素。
Object removedFirst = list.removeFirst();
  • removeLast():移除并返回列表的最后一个元素。
Object removedLast = list.removeLast();
  • offer(E e):在列表末尾添加元素(与add(E element)类似,通常用于队列操作)。
list.offer("newElement");
  • poll():移除并返回列表的第一个元素,如果列表为空则返回null(通常用于队列操作)。
Object polled = list.poll();
  • push(E e):将元素推入列表的头部(通常用于栈操作)。
list.push("stackElement");
  • pop():移除并返回列表的头部元素(通常用于栈操作)。
Object popped = list.pop();

三、HashSet

HashSet是基于哈希表实现的集合,不允许重复元素。

  • add(E e):添加元素到集合中,如果元素已存在则不会添加。
HashSet<String> set = new HashSet<>();
set.add("element");
  • remove(Object o):从集合中移除指定元素。
set.remove("elementToRemove");
  • contains(Object o):检查集合中是否包含指定元素。
boolean contains = set.contains("element");
  • size():返回集合中的元素个数。
int size = set.size();
  • isEmpty():检查集合是否为空。
boolean empty = set.isEmpty();
  • clear():清空集合中的所有元素。
set.clear();
  • iterator():返回一个用于遍历集合的迭代器。
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
}

四、HashMap

HashMap是基于哈希表实现的键值对映射。

  • put(K key, V value):添加或更新键值对。
HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 5);
  • get(Object key):根据键获取对应的值。
Integer value = map.get("apple");
  • remove(Object key):根据键删除键值对。
map.remove("apple");
  • containsKey(Object key):检查是否包含指定的键。
boolean hasKey = map.containsKey("banana");
  • containsValue(Object value):检查是否包含指定的值。
boolean hasValue = map.containsValue(3);
  • size():获取键值对的数量。
int size = map.size();
  • isEmpty():判断HashMap是否为空。
boolean empty = map.isEmpty();
  • clear():清空所有键值对。
map.clear();
  • keySet():获取所有键的Set集合。
for (String key : map.keySet()) {
//...
}
  • values():获取所有值的Collection集合。
for (Integer value : map.values()) {
//...
}
  • putAll(Map<? extends K,? extends V> m):将指定Map中的所有键值对添加到当前HashMap中。
HashMap<String, Integer> map1 = new HashMap<>();
map1.put("a", 1);
HashMap<String, Integer> map2 = new HashMap<>();
map2.putAll(map1);
  • replace(K key, V oldValue, V newValue):仅当指定键对应的值为oldValue时,才将其替换为newValue
map.replace("a", 1, 2);
  • compute(K key, BiFunction<? super K,? super V,? extends V> remappingFunction):对指定键的值进行重新计算,如果键不存在则可以添加新的键值对。
map.compute("a", (k, v) -> v == null? 1 : v + 1);
  • computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction):如果指定键不存在或者对应的值为null,则使用给定的函数计算新的值并添加到HashMap中。
map.computeIfAbsent("b", k -> 3);
  • computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction):如果指定键存在,则使用给定的函数重新计算其值。
map.computeIfPresent("a", (k, v) -> v * 2);
  • merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction):如果键不存在,则将键值对添加到HashMap;如果键存在,则使用给定的函数对旧值和新值进行合并。
map.merge("c", 4, (oldVal, newVal) -> oldVal + newVal);
  • entrySet():返回HashMap中包含所有键值对的Set<Map.Entry<K, V>>集合,可用于遍历。
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
}

五、TreeSet

TreeSet是基于红黑树实现的有序集合。

  • add(E e):添加元素到集合中,会按照元素的自然顺序(如果元素实现了Comparable接口)或指定的比较器顺序(如果构造TreeSet时传入了Comparator)进行排序。
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(5);
  • remove(Object o):从集合中移除指定的元素。
treeSet.remove(5);
  • contains(Object o):检查集合中是否包含指定的元素。
boolean contains = treeSet.contains(3);
  • first():返回集合中的第一个元素。
Integer first = treeSet.first();
  • last():返回集合中的最后一个元素。
Integer last = treeSet.last();
  • lower(E e):返回集合中严格小于指定元素的最大元素。
Integer lower = treeSet.lower(7);
  • higher(E e):返回集合中严格大于指定元素的最小元素。
Integer higher = treeSet.higher(4);
  • pollFirst():移除并返回集合中的第一个元素,如果集合为空则返回null
Integer firstRemoved = treeSet.pollFirst();
  • pollLast():移除并返回集合中的最后一个元素,如果集合为空则返回null
Integer lastRemoved = treeSet.pollLast();
  • clear():清空集合中的所有元素。
treeSet.clear();
  • size():返回集合中的元素个数。
int size = treeSet.size();
  • descendingSet():返回一个反向的Set视图,用于反向遍历。
TreeSet<Integer> descending = (TreeSet<Integer>) treeSet.descendingSet();
  • subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive):返回指定范围内的子集合。
TreeSet<Integer> subSet = (TreeSet<Integer>) treeSet.subSet(3, true, 7, false);
  • headSet(E toElement, boolean inclusive):返回小于(或等于,如果inclusivetrue)指定元素的子集合。
TreeSet<Integer> headSet = (TreeSet<Integer>) treeSet.headSet(6, true);
  • tailSet(E fromElement, boolean inclusive):返回大于(或等于,如果inclusivetrue)指定元素的子集合。
TreeSet<Integer> tailSet = (TreeSet<Integer>) treeSet.tailSet(4, false);

**六、TreeMap **

是基于红黑树实现的有序映射(键值对存储),它根据键的自然顺序或者自定义的比较器顺序来对键进行排序。

  1. put(K key, V value):添加或更新键值对。
TreeMap<String, Integer> treeMap = new TreeMap<>();
treeMap.put("apple", 5);
  1. get(Object key):根据键获取对应的值。
Integer value = treeMap.get("apple");
  1. remove(Object key):根据键删除键值对。
treeMap.remove("apple");
  1. firstKey():获取 TreeMap 中的第一个键。
String firstKey = treeMap.firstKey();
  1. lastKey():获取 TreeMap 中的最后一个键。
String lastKey = treeMap.lastKey();
  1. lowerKey(K key):获取严格小于指定键的最大键。
String lower = treeMap.lowerKey("banana");
  1. higherKey(K key):获取严格大于指定键的最小键。
String higher = treeMap.higherKey("banana");
  1. floorKey(K key):获取小于等于指定键的最大键。
String floor = treeMap.floorKey("banana");
  1. ceilingKey(K key):获取大于等于指定键的最小键。
String ceiling = treeMap.ceilingKey("banana");
  1. keySet():获取 TreeMap 中所有键的 Set 视图。
for (String key : treeMap.keySet()) {
// 操作键
}
  1. values():获取 TreeMap 中所有值的 Collection 视图。
for (Integer value : treeMap.values()) {
// 操作值
}
  1. entrySet():获取包含所有键值对的 Set<Map.Entry<K, V>> 视图,用于遍历。
for (Map.Entry<String, Integer> entry : treeMap.entrySet()) {
String key = entry.getKey();
Integer val = entry.getValue();
}
  1. pollFirstEntry():移除并返回 TreeMap 中的第一个键值对,如果为空则返回 null
Map.Entry<String, Integer> firstEntry = treeMap.pollFirstEntry();
  1. pollLastEntry():移除并返回 TreeMap 中的最后一个键值对,如果为空则返回 null
Map.Entry<String, Integer> lastEntry = treeMap.pollLastEntry();
  1. clear():清空 TreeMap 中的所有键值对。
treeMap.clear();
  1. size():获取 TreeMap 中键值对的数量。
int size = treeMap.size();
  1. isEmpty():检查 TreeMap 是否为空。
boolean empty = treeMap.isEmpty();
  1. putAll(Map<? extends K,? extends V> m):将另一个 Map 中的所有键值对添加到当前 TreeMap 中。
TreeMap<String, Integer> map1 = new TreeMap<>();
map1.putAll(treeMap);
  1. replace(K key, V value):将指定键对应的旧值替换为新值。
treeMap.replace("apple", 10);
  1. replace(K key, V oldValue, V newValue):仅当指定键对应的值为 oldValue 时,才将其替换为 newValue
treeMap.replace("apple", 5, 8);

七、初始化方法

一、ArrayList

  1. 初始化方法:
  • ArrayList<String> list = new ArrayList<>();:创建一个空的 ArrayList
  • ArrayList<String> list = new ArrayList<>(10);:创建一个初始容量为 10 的空 ArrayList
  1. 直接赋值或添加多值:
  • ArrayList<String> list = new ArrayList<>(Arrays.asList("item1", "item2", "item3"));:通过 Arrays.asList 方法初始化并添加多个元素。

二、LinkedList

  1. 初始化方法:
  • LinkedList<String> list = new LinkedList<>();:创建一个空的 LinkedList
  1. 直接赋值或添加多值:
  • LinkedList<String> list = new LinkedList<>(Arrays.asList("item1", "item2", "item3"));:利用 Arrays.asList 初始化并添加多个元素。

三、HashSet

  1. 初始化方法:
  • HashSet<String> set = new HashSet<>();:创建一个空的 HashSet
  1. 直接赋值或添加多值:
  • HashSet<String> set = new HashSet<>(Arrays.asList("item1", "item2", "item3"));:通过 Arrays.asList 转换为 Set

四、HashMap

  1. 初始化方法:
  • HashMap<String, Integer> map = new HashMap<>();:创建一个空的 HashMap
  1. 直接赋值或添加多值:
  • HashMap<String, Integer> map = new HashMap<>() {{ put("apple", 5); put("banana", 3); }};:使用匿名内部类的方式初始化并添加键值对。

五、TreeSet

  1. 初始化方法:
  • TreeSet<String> treeSet = new TreeSet<>();:创建一个空的 TreeSet(按自然顺序排序)。
  • TreeSet<String> treeSet = new TreeSet<>(Comparator.comparing(String::length));:创建一个按指定比较器排序的 TreeSet,这里按字符串长度比较。
  1. 直接赋值或添加多值:
  • 可以通过循环逐个添加元素,没有像 Arrays.asList 那样直接的多值添加方法,但可以如下方式初始化:
TreeSet<String> treeSet = new TreeSet<>() {{
add("item1");
add("item2");
add("item3");
}};

六、TreeMap

  1. 初始化方法:
  • TreeMap<String, Integer> treeMap = new TreeMap<>();:创建一个空的 TreeMap(按键的自然顺序排序)。
  • TreeMap<String, Integer> treeMap = new TreeMap<>(Comparator.comparingInt(String::length));:创建一个按指定比较器排序的 TreeMap,这里按字符串长度比较。
  1. 直接赋值或添加多值:
  • TreeMap<String, Integer> treeMap = new TreeMap<>() {{ put("apple", 5); put("banana", 3); }};:使用匿名内部类的方式初始化并添加键值对。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值