Home List
Post
Cancel

List

List

List Interface는 대표적인 선형 자료구조로 주로 순서가 있는 데이터를 목록으로 이용할 수 있도록 만들어진 인터페이스다.

List를 통해 구현된 클래스들은 ‘동적 크기’를 갖으며 배열처럼 사용할 수 있게 되어있다.

→ 배열의 기능 + 동적 크기 할당




List Interface를 구현하는 클래스

  • ArrayList

  • LinkedList

  • Vector (+ Vector를 상속받은 Stack)




List Interface에 선언된 메소드

메소드리턴 타입설명
add(E e)boolean요소를 추가한다.
remove(Object o)boolean지정된 객체와 같은 첫번째 객체를 삭제한다.
contains(Object o)boolean지정한 객체가 컬렉션에 있는지 확인한다. 있을 경우 true, 없을 경우 false를 반환
size()int현재 컬렉션에 있는 요소 개수를 반환한다.
get(int index)E지정된 위치에 저장된 원소를 반환한다.
set(int index,E elements)E지정된 위치에 있는 요소를 지정된 요소로 바꾼다.
isEmpty()boolean현재 컬렉션에 요소가 없다면 true, 요소가 존재한다면 false를 반환
equals(Object o)boolean지정된 객체와 같은지 비교한다.
indexOf(Object o)int지정된 객체가 있는 첫번째 요소의 위치를 반환한다. 만일 없을 경우 -1 반환
clear()void모든 요소를 제거한다.



ArrayList는 Object[] 배열을 사용하면서 내부 구현을 통해 동적으로 관리를 한다.

LinkedList는 데이터(item)와 주소로 이루어진 클래스를 만들어 서로 연결하는 방식이다.

Stack은 후입선출(LIFO : Last in First out)이라고 하는데, 짐을 쌓는다고 생각하면 쉽다.




코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* 
T는 객체 타입을 의미하며 기본적으로
Integer, String, Double, Long 같은 Wrapper Class부터 사용자 정의 객체까지 가능하다.
ex) LinkedList<Integer> list = new LinkedList<>();
primitive type은 불가능하다.
*/
 
// 방법 1
ArrayList<T> arraylist = new ArrayList<>();
LinkedList<T> linkedlist = new LinkedList<>();
Vector<T> vector = new Vector<>();
Stack<T> stack = new Stack<>();
 
// 방법 2
List<T> arraylist = new ArrayList<>();
List<T> linkedlist = new LinkedList<>();
List<T> vector = new Vector<>();
List<T> stack = new Stack<>();
 
// Stack은 Vector를 상속하기 때문에 아래와 같이 생성할 수 있다.
Vector<T> stack = new Stack<>();




출처
자바 [JAVA] - 자바 컬렉션 프레임워크 (Java Collections Framework)

This post is licensed under CC BY 4.0 by the author.