Java中ArrayList常用方法

2025-05-28 11:17:07
admin

目录

1. 构造1.1 传统初始化1.2 特化集合1.2.1 流规约为集合:.collect(Collectors.toList())

1.3 克隆集合1.4 截取子集合:subList

2. 增:add・addAll3. 删:remove・removeAll4. 改:set・replaceAll5. 查:isEmpty・size・contains・get・indexOf・lastIndexOf6. 遍历7. 排序:sort8. 判等:equals9. Java8流式用法:list.stream10. 数据结构间切换计算:retainAll・removeAll・addAllCollectionUtils参考

1. 构造

1.1 传统初始化

List list = new ArrayList<>();

list.add("a");

List list = Arrays.asList("a", "b", "c");

List list = new ArrayList(Arrays.asList("a", "b", "c"));

1.2 特化集合

1.2.1 流规约为集合:.collect(Collectors.toList())

# 数值段构造数组

int[] ints = IntStream.rangeClosed(3, 9).collect(Collectors.toList()); // [3, 4, 5, 6, 7, 8, 9]

# 每隔n个元素便收集

public static List everyNth(int[] elements, int nth) {

return IntStream.range(0, elements.length).filter(i -> i % nth == nth - 1).map(i -> elements[i]).collect(Collectors.toList());

}

# java8 filter-map-.collect(Collectors.toList())那一套

1.3 克隆集合

List originalList = new ArrayList<>(Arrays.asList("item1", "item2", "item3"));

// 浅拷贝

List clonedList = originalList.stream().collect(Collectors.toList());

1.4 截取子集合:subList

list.subList(1, 3); [a, b, c, d] → [b, c]・返回一个新的列表视图,对子列表的修改会影响原始列表

2. 增:add・addAll

list.add("d"); [a, b, c] → [a, b, c, d]

list.add(1,"d"); [a, b, c] → [a, d, b, c]

list.addAll(list2); [a, b, c] [d, e, f] → [a, b, c, d, e, f]

list.addAll(1, list2); [a, b, c] [d, e, f] → [a, d, e, f, b, c]

3. 删:remove・removeAll

Java中删除list元素的几种方法

list.remove(1); [a, b, a, c] → [a, a, c]

list.remove("a"); [a, b, a, c] → [b, a, c]

list.removeAll(list2);

4. 改:set・replaceAll

list.set(1, "e") [a, b, c, d] → [a, 6, c, d]

list.replaceAll(a -> a + "@"); [a, b, c, d] → [a@, b@, c@, d@]

5. 查:isEmpty・size・contains・get・indexOf・lastIndexOf

list.isEmpty()

list.size()

list.contains("a") 判断是否包含、包含返回true

list.get(0)

list.indexOf("a") 判断元素第一次出现的索引,不存在则返回-1

list.lastIndexOf("b") 获取元素最后一次出现的索引,不存在则返回-1

6. 遍历

ref:Java List的7种遍历以及性能对比

7. 排序:sort

数组・List・Map・TreeSet排序

8. 判等:equals

List list1 = Arrays.asList(1, 2, 3);

List list2 = Arrays.asList(1, 2, 3);

List list3 = Arrays.asList(1, 2, 4);

// 判断 list1 和 list2 是否相等

boolean isEqual1 = list1.equals(list2);

System.out.println("list1 equals list2: " + isEqual1); // true

// 判断 list1 和 list3 是否相等

boolean isEqual2 = list1.equals(list3);

System.out.println("list1 equals list3: " + isEqual2); // false

9. Java8流式用法:list.stream

10. 数据结构间切换

Integer[] list = integers2.toArray(Integer[]::new);

Integer[] list = integers2.toArray(new Integer[0]);

Integer[] list = integers2.toArray(new Integer[integers2.size()]);

ref:字符串,数组,集合之间相互转换总结

计算:retainAll・removeAll・addAll

Java 中 List 集合取交集 我有你也有 Java 中 List 集合取并集 你我都有啥 Java 中 List 集合取差集 我有你没有 Java 中 List 集合取补集 除了我你还有啥

list.retainAll(list2); 修改原集合・把你和我一样的都保留

list.removeAll(list2); 修改原集合・把你和我一样的都删除

list.addAll(list2); 修改原集合・把你的我都接纳进来

CollectionUtils

org.apache.commons

commons-collections4

4.4

CollectionUtils.isEmpty(list);

CollectionUtils.isNotEmpty(list)

CollectionUtils.retainAll(collA, collB); // 交集

CollectionUtils.union(collA, collB); // 并集

CollectionUtils.subtract(collA, collB); // 差集

CollectionUtils.disjunction(listA,listB); // 交集的补集

CollectionUtils.unmodifiableCollection(Collection collection) // 不可修改的集合

CollectionUtils.isEqualCollection(collA, collB); // 判等

参考

ArrayList最常用的方法总结 CollectionUtils有哪些666的方法

Copyright © 2088 2015女排世界杯_法国世界杯夺冠 - pgcnz.com All Rights Reserved.
友情链接