A Guide to ArrayList
特点
- 存储的元素有序可重复
- ArrayList built atop an array, which is able to dynamically grow and shrink as you add/remove elements.
This ArrayListhas the following properties:
- Random access takes O(1) time(支持高效的随机元素访问)
- Adding element takes amortized constant time O(1)
- Inserting/Deleting takes O(n) time
- Searching takes O(n) time for unsorted array and O(log n) for a sorted one
时间复杂度函数图像
List<String> list = Arrays.asList("a", "b", "c");
List<String> list = new ArrayList(Arrays.asList("a", "b", "c"));
list.add("e");
list.add(1,"c");
list.addAll(list2);
list.addAll(1, list2);
list.clear();
list.remove(0); // 删除对应索引的元素
list.remove("a") // 删除指定元素、从前往后删除
list.removeAll(list2) // 删除所有元素
list.removeIf(a->a.equals("a")) // 有条件的删除
list.set(1, "e")
list.replaceAll(a -> a + "@"); // 对所有元素进行一次加工
list.contains("a") // 判断是否包含、包含返回true
list.isEmpty()
list.size()
list.get(0)
list.indexOf("a") // 判断元素第一次出现的索引,不存在则返回-1
list.lastIndexOf("b") // 获取元素最后一次出现的索引
list.retainAll(list2); // 取交集
list.sort(Comparator.comparing(a->a.length()));
List<String> strings = list.subList(1, 2); // 获取子列表
String[] arr = list.toArray(new String[0]);
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
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的方法
还没有评论,来说两句吧...