目录
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.add("a");
List
List
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
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
// 浅拷贝
List
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
List
List
// 判断 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
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的方法