자바 컬렉션 프레임 워크 (자바 컬렉션 프레임 워크, JCF는) 일반적으로, 그래서 여기에 목록, 세트, ArrayList를, HashMap에가, 등을 HashSet의 예를 들면, 많은 일반적인 개발 클래스를 포함 시작을 시작 할 예정이다.
컬렉션 인터페이스 컬렉션 계층 구조의 루트 인터페이스, 가장 일반적으로 사용되는 목록과 설정 인터페이스는 그것에서 상속합니다. 아래 그들의 상속 구조 (공통 부분) :
Collection 인터페이스 방법은 아래에 설명되어 있습니다 :
많은 방법이 여기 이탈리아어, 간단한 분석을 알고 이름을 볼 수 있습니다 :
크기 1 () : 콜렉션에 포함 된 소자의 수;
2. 그러나 IsEmpty () : 컬렉션이 비어 있는지;
3. (Object)를 포함 객체가 컬렉션에 포함 된 경우;
4. 반복자 (가) : (순차) 가로 지르는 세트, 컬렉션에 대한 반복자를 반환
5.1 오브젝트 [] toArray () 배열 세트 "복사"객체의 요소;
5.2 T [] toArray (T [] a) : 상기 방법은 어레이의 형태 (배열의 세트 사이에서 전환하는 두 가지 방법)을 지정할 수 제외한 효과와 5.1;
6. 추가 (E) 첨가제 소자;
삭제 제 (개체) 분리 소자와;
제 containsAll 나 (컬렉션 <?>) 컬렉션 다른 세트를 포함하는지 여부를 결정하는 단계;
9. 및 addAll은 (컬렉션 <? E를 확장>) 다른 세트의 모든 요소 컬렉션에 추가된다;
10에서 removeAll (컬렉션 <?>) 집합에서 모든 요소들의 지정된 세트를 제거;
11. removeIf (<E 슈퍼?> 술어) 기능 동작 술어 JDK 1.8가 도입된다, 즉, 파라미터 전달 방법을 상기 요소의 집합에서 지정된 조건을 제거하는 단계;
12. 나 retainAll (<?> 컬렉션) 세트, 즉,이 특정 세트에 포함 된 모든 요소를 제거하지 않고있는 고정 요소를 지정한다;
13. clear(): 清空集合;
14. equals(Object): 比较该集合与指定的对象是否相等;
15. hashCode(): 返回该集合的哈希值,注意重写 equals 方法时必须要重写该方法,以满足 Object.hashCode 方法的规定。
16. spliterator(): 可分割迭代器,用于并行遍历集合中的元素(iterator() 方法是顺序遍历);
17. stream() & parallelStream(): JDK 1.8 引入的流(Stream)式数据处理,分别表示串行流和并行流,该部分以后单独分析。
此外,还有一个继承自 Iterable 接口的 forEach(Consumer<? super T>) 方法,该方法也是 JDK 1.8 引入的,提供遍历集合元素的函数式操作。
PS: JDK 版本如下
阅读源码时,个人以为应该先读接口类,而非具体的实现类。原因有二:
1. 接口类本身就有协议或标准的性质,至于它的多个实现类,都是对该标准的详细实现。因此,如果熟悉了「标准」,再去研究其实现类会更容易理解。
2. 从代码量看,接口类代码较少。实现类的代码一般较多,如果初读源码就钻到实现类,可能容易被搞蒙。
Stay hungry, stay foolish.
PS: 本文首发自微信公众号。