본문 바로가기
프로그래밍/자바

자바 컬렉션(Collection)과 Iterator

by 밍구몬 2019. 2. 22.

자바의 컬렉션은 대량의 데이터를 처리할 때 사용한다.

 

컬렉션의 인터페이스에는 HashSet, Vector, AraayList, Stack 등이 있으며 Map 인터페이스에는 HashMap등이 있다.

 

List

 

순서가 있으며, 데이터의 중복을 허용한다.

 

  • ArrayList : 가변의 길이를 가지고 있으며, 많은 데이터를 처리시 성능이 떨어지지만 각 데이터에 대한 인덱스를 가지고 있어 검색은 빠르다.
  • Vector : 비교적 성능이 좋지 않고 무겁기 때문에 잘 사용하지 않는다.
  • LinkedList : 데이터의 삽입 삭제는 빠르지만, 검색은 느리다는 단점이 있다.
  • Stack : LIFO(Last in first out)으로 구현되어 있다.

 

Set

 

데이터의 순서가 없으며, 중복을 허용하지 않는다.

 

  • HashSet : 가장 빠른 접근속도를 가지고 있지만, 순서를 알 수 없다.
  • LinkedhashSet : 추가된 순서대로 접근이 가능하다.
  • TreeSet : 정렬된 순서대로 보관하며, 정렬방법을 지정할 수 있다.
 
Map
 
Key와 Value의 쌍으로 데이터가 저장된다.
 
  • HashMap : 중복을 허용하지 않고, 순서를 보장하지 않는다. (NULL 허용)
  • Hashtable : HashMap보다는 느리지만, 동기화를 지원한다. (Null 불가))
  • TreeMap : 정렬된 순서대로 저장되어 검색은 빠르지만, 데이터 추가/삭제시 느리다.
컬렉션 인터페이스의 주요 메소드
 

 메소드

설명 

boolean add (E element)

맨 뒤에 element 추가 

void clear() 

모든 요소 삭제 

E get (int i) 

인덱스 i의 요소 리턴

boolean isEmpty()

비어 있으면 True 리턴

E remove(int i) 

i 번째 요소를 삭제 

int size() 

저장되어 있는 객체 수 리턴 

 

Set 인터페이스의 주요 메소드
 

 메소드

설명 

boolean add(E element) 

객체를 추가(성공하면 True, 중복되면 False를 리턴) 

boolean isEmpty()

비어 있으면 True를 리턴 

int size() 

저장되어 있는 객체 수 리턴 

void clear() 

저장된 모든 요소 삭제 

bollean remove(Object o) 

지정된 객체 삭제 

 

Map 인터페이스의 주요 메소드

 

 메소드

 설명 

 V put(K key,V value)

 key와 value값을 매핑시켜 저장

 V get(Object o) 

 지정된 키에 매핑되는 값 리턴

 int size()  

 저장된 요소 갯수 리턴

 int clear() 

 모든 요소 삭제

 V remove(Object key)

 지정된 키에 매핑된 값을 삭제

 

Iterator
 
컬렉션에 저장되어 있는 요소들을 읽어오는 방법.
 

메소드 

설명 

boolean hasNext() 

다음 반복에서 사용될 요소가 있으면 True 리턴 

E next() 

다음 요소 리턴 

void remove() 

마지막으로 리턴된 요소 제거 

 

 
 

사용 예제

 

import java.util.*;

 

public class test{

public static void main(String[] args) {

ArrayList<Integer> a = new ArrayList<Integer>();

a.add(10);

a.add(20);

a.add(30);

 

Iterator<Integer> it = a.iterator();    //iterator 선언

 

while(it.hasNext()) {    //값이 있다면 True 리턴

System.out.println(it.next());    //리스트 값 출력

}

 

}

}

 

'프로그래밍 > 자바' 카테고리의 다른 글

자바 Jsoup를 이용한 웹 크롤링 예제  (3) 2019.02.25
자바 제네릭(generic)  (0) 2019.02.23
자바 인터페이스(interface)  (0) 2019.02.21
자바 추상 클래스(abstract)  (0) 2019.02.21
자바의 접근 지정자  (0) 2019.02.20