반응형
컬렉션
자바에서 컬렉션은 목록성 데이터를 처리하는 자료 구조를 통칭한다.
자료구조
자료구조는 영어로 Data Source 이며 여러 데이터를 담을 때 사용한다.
배열에 담는 것도 문제가 되지 않지만 배열의 크기가 정해져 있을 때 유용하다.
담으려는 데이터의 크기가 얼마나 되는지 모르는 경우에는 자료 구조를 사용하면 된다.
자바에서 데이터를 담는 자료구조 구분
순서가 있는 목록형 - List
순서가 중요하지 않은 셋형 - Set
먼저 들어온 것이 먼저 나가는 큐형 - Queue
키-값 으로 저장되는 맵형 - Map
List, Set, Queue 는 Collection 인터페이스를 구현하지만 Map 은 아니다.
컬렉션 인터페이스는 다음과 같이 선언되어 있다.
public interface Collection<E> extends Iterable<E>
자바의 컬렉션과 관련된 클래스들
List 인터페이스를 구현한 클래스들
ArrayList
Vector
Stack
LinkedList
ArrayList 메소드
ArrayList<String> list = new ArrayList<String>();
ArrayList<String> list2 = new ArrayList<String>();
// ArrayList에 데이터 담기
list.add("A");
list.add(1,"A1");
list2.addAll(list);
// ArrayList 크기
int listSize = list.size();
// ArryayList에서 데이터 꺼내기
list.get(0);
// ArrayList에서 배열로 꺼내기
String[] tempArray = new String[3];
String[] strList = list.toArray(tempArray);
// ArrayList에서 데이터 삭제
list.remove(0);
list.remove("A");
list.removeAll(temp);
// ArrayList에서 값 변경
list.set(0, "A");
Stack
List 인터페이스를 구현한 또 하나의 클래스이다.
Stack은 마지막에 들어온 데이터를 가장 처음에 꺼내는 LIFO이다.
LIFO 기능을 가지고 더 빠른 ArrayDeque라는 클래스가 존재하지만 Thred safty 하지 않다.
Stack 클래스의 상속관계
java.lang.Object
→ java.util.AbstractCollection<E>
→ java.util.AbstractList<E>
→ java.util.Vector<E>
→ java.util.Stack<E>
Stack 메소드
Stack<Integer> intStack = new Stack<Integer>();
// 매개변수로 넘어온 데이터를 가장 위에 저장
intStack.push(loop)
// 객체 가장 위에 있는 데이터를 리턴
intStack.peek()
// 객체 가장 위에 있는 데이터를 지우고 리턴
intStack.pop()
// 스택 사이즈
intStack.size()
반응형
'애플리케이션 개발 > JAVA' 카테고리의 다른 글
[JAVA] Map (0) | 2022.02.06 |
---|---|
[JAVA] Set과 Queue (0) | 2022.02.05 |
[JAVA] 제네릭 (0) | 2022.02.02 |
[JAVA] JAVA (0) | 2022.02.02 |
[JAVA] String , 어노테이션 (0) | 2022.02.02 |