코딩/Java

Collections framework2

컬렌션즈 프레임워크라는 것은 다른 말로는 컨테이너라고도 부른다.

즉 값을 담는 그릇이라는 의미이다. 그런데 그 값의 성격에 따라 컨테이너의 상격이 조금씩 달라진다.

자바에서는 다양한 상황에서 사용할 수 있는 다양한 컨테이너를 제공하는데 이것을 컬렉션즈 프레임워크라고 부른다.

ArrayList는 그 중 하나이다.

 

전체적인 구성 :

 

https://opentutorials.org/course/1223/6446

List와 Set의 차이점 :

 

ArrayList는 값을 넣는 족족 중복에 상관없이 들어간다. 순서가 보장된다.

 

반대로 HashSet은 중복을 제외하고 값이 들어간다. 순서가 보장되지 않는다.

그래서 각자의 값이 고유하다.

Iterator ai = al.iterator();
while(ai.hasNext()){
    System.out.println(ai.next());
}

이번 코드는 값을 가져오는 방식이 기존과 다르다.

 

메소드 iterator는 인터페이스 Collection에 정의되어 있다. 따라서 Collection을 구현하고 있는 모든 컬렉션즈 프레임웍크는 이 메소드를 구현하고 있음을 보증한다. 메소드 iterator의 호출 결과는 인터페이스 iterator를 구현한 객체를 리턴한다. 인터페이스 iterator는 아래 3개의 메소드를 구현하도록 강제하고 있는데 각각의 역할은 아래와 같다.

 

hasNext
반복할 데이터가 더 있으면 true, 더 이상 반복할 데이터가 없다면 false를 리턴한다.
next
hasNext가 true라는 것은 next가 리턴할 데이터가 존재한다는 의미다.

 

Iterator 에서 next()로 리턴하게 되면 hi에 들어 있던 값은 사라진다.

 

Iterator의 hi는 사라진다고 해서 A값에 영향을 주지 않는다.

 

Set :

 

'코딩 > Java' 카테고리의 다른 글

Collections framework3  (0) 2021.01.12
Collections framework2  (0) 2021.01.11
Collections framework  (0) 2021.01.11
제네릭  (0) 2021.01.10
참조와 복제  (0) 2021.01.09
상수와 enum2  (0) 2021.01.09