애플리케이션 개발/JAVA

[JAVA] List

sofiaaa 2022. 2. 4. 09:25
반응형

컬렉션

자바에서 컬렉션은 목록성 데이터를 처리하는 자료 구조를 통칭한다.

 

자료구조

자료구조는 영어로 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