자바의 컬렉션은 대량의 데이터를 처리할 때 사용한다.
컬렉션의 인터페이스에는 HashSet, Vector, AraayList, Stack 등이 있으며 Map 인터페이스에는 HashMap등이 있다.
List
순서가 있으며, 데이터의 중복을 허용한다.
- ArrayList : 가변의 길이를 가지고 있으며, 많은 데이터를 처리시 성능이 떨어지지만 각 데이터에 대한 인덱스를 가지고 있어 검색은 빠르다.
- Vector : 비교적 성능이 좋지 않고 무겁기 때문에 잘 사용하지 않는다.
- LinkedList : 데이터의 삽입 삭제는 빠르지만, 검색은 느리다는 단점이 있다.
- Stack : LIFO(Last in first out)으로 구현되어 있다.
Set
데이터의 순서가 없으며, 중복을 허용하지 않는다.
- HashSet : 가장 빠른 접근속도를 가지고 있지만, 순서를 알 수 없다.
- LinkedhashSet : 추가된 순서대로 접근이 가능하다.
- TreeSet : 정렬된 순서대로 보관하며, 정렬방법을 지정할 수 있다.
- 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) |
지정된 키에 매핑된 값을 삭제 |
메소드 |
설명 |
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 |