【JavaSE】《.集合》Collection接口
程序员文章站
2022-07-04 20:20:36
...
总体框架图:
一、Collection接口
1. Collection接口源码
public interface Collection<E> extends Iterable<E> {
//返回大小
int size();
//是否为空
boolean isEmpty();
//是否包含
boolean contains(Object o)
//返回迭代器
Iterator<E> iterator();
//集合转换为数组
Object[] toArray();
//转换为对应泛型的数组
<T> T[] toArray(T[] a);
//添加
boolean add(E e);
//移除指定元素
boolean remove(Object o);
//将 other 集合中的所有元素添加到这个集合,如果由于这个调用改变了集合 , 返回 true
boolean addAll(Collection<? extends E> c);
//从这个集合删除 filter 返回 true 的所有元素
default boolean removeIf(Predicate<? super E> filter) {
Objects.requireNonNull(filter);
boolean removed = false;
final Iterator<E> each = iterator();
while (each.hasNext()) {
if (filter.test(each.next())) {
each.remove();
removed = true;
}
}
return removed;
}
//是否存在交集。从这个集合中删除所有与 other 集合中的元素不同的元素 。
boolean retainAll(Collection<?> c);
//清空
void clear();
boolean equals(Object o);
int hashCode();
@Override
default Spliterator<E> spliterator() {
return Spliterators.spliterator(this, 0);
}
default Stream<E> stream() {
return StreamSupport.stream(spliterator(), false);
}
default Stream<E> parallelStream() {
return StreamSupport.stream(spliterator(), true);
}
}
2. 迭代器介绍
3. 遍历集合的方式
方式一:集合转数组。使用普通for循环
方式二:使用Collection接口定义的迭代器
方式三:使用实现集合类独有的遍历方式,
- 如 Arraylist可以使用下标进行普通for循环,增强for、迭代器
- LinkedList支持普通for( list.get(index);)、增强for、迭代器
- Set只能使用 iterator 迭代器遍历、
- Map遍历则有5种方式(键值对EntrySet、迭代器、keySet+values、通过键找值的传统方式、正则表达式)
- Map的四种遍历方式:https://www.cnblogs.com/damoblog/p/9124937.html
4. 集合与数组之间的转换
List与数组的转换:https://www.cnblogs.com/quanqi-yhz/p/11023955.html
5.接口、实现类架构图
上一篇: iOS开发之AssetsLibrary框架使用详解
下一篇: 5G 标准的走向,为何越来越不同寻常?
推荐阅读
-
java中集合(LinkedList、HashSet、HashMap、HashTable、Collection、Collections)
-
Java自学-集合框架 List接口
-
java中集合(LinkedList、HashSet、HashMap、HashTable、Collection、Collections)
-
关于MongoDB 固定集合(capped collection)的知识梳理
-
四种常见的数据结构、LinkedList、Set集合、Collection、Map总结
-
MongoDB固定集合(capped collection)的知识小结
-
Collection集合
-
Java Collection集合iterator方法解析
-
荐 Collection集合,Iterator迭代器,<>泛型
-
Java集合及LIst接口