1) List

 저장된 요소들의 순서가 있고, 데이터에 중복이 가능하고 인덱스(index) 번호에 의해서 정렬된다.

  - 리스트는 컬렉션 인터페이스 중 하나이다.

  - 리스트는 2개의 종류로 나뉜다 (ArrayList, LinkedList)

  - 리스트는 크기 조절이 가능하다

  - 리스트는 초기 크기를 지정하지 않아도 된다.

  - 리스트의 삭제는 공간을 지우는 것이다.

 리스트(List)는 다음의 형식으로 사용한다.

import java.util.ArrayList;

List<자료형> 리스트명 = new ArrayList();

<>은 제네릭이라고 한다. jdk1.5부터 시행됐고, 1.5이전에는 제네릭이 없기 때문에 매 메소드마다 자료형을 캐스팅 해주었다.

 

 List의 주요 기능

구분			설명
List.add(value)		데이터를 리스트의 가장 마지막 인덱스에 추가한다.
List.add(index, value)	데이터를 지정한 인덱스에 값을 넣고 이후의 값을 한칸씩 뒤로 밀어준다.
List.set(index, value)	데이터를 지정한 인덱스 값을 치환하여 저장한다.
List.remove(index)	지정한 인덱스의 데이터 값을 삭제한다.
List.clear()		리스트의 전체 요소를 삭제한다.
List.get(index)		리스트의 인덱스 요소를 반환한다.
List.size()		리스트의 크기를 반환한다.

 

2) Set

저장된 요소들의 순서가 존재하지 않고, 중복된 데이터를 허용하지 않는 컬렉션 인터페이스이다. Set은 인덱스로 객체를 관리하지 않기 때문에, 데이터를 검색하기 위해서는 iterator() 메서드로 Iterator(반복자)를 생성하고 데이터를 가져와야한다.

 셋(Set)은 다음과 같은 형식으로 사용한다.

import java.util.Set;

Set<자료형> 셋명 = new HashSet<자료형>();

 Set은 다음과 같은 메소드를 지원한다.

구분			설명
Set.add(value)		데이터를 셋에 추가한다.
Set.contains(value)	셋에 해당 데이터가 존재하는지 반환한다.
Set.clear()		셋의 전체 요소를 삭제한다.
Set.iterator()		셋의 검색을 위한 반복자 생성.
Set.size()		셋의 크기를 반환한다.

3) Map

 맵은 키(Key)와 값(Value)을 하나의 데이터로 저장하는 특징을 가진다. 이를 통해 해싱(hashing)을 가능하게 하여 데이터를 검색하는데 뛰어난 성능을 보이는 인터페이스이다. 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 key를 통해 value를 얻기 때문에, 저장의 순서가 유지하지 않는다. 또한, key의 값은 중복을 허용하지 않고, value의 값은 중복을 허용한다.

 Map은 다음과 같은 형식으로 사용한다.

import java.util.HashMap;
import java.util.Map;

Map<Key, Value> map = new HashMap();

 Map은 다음과 같은 메소드를 지원한다.

구분				설명
Map.put(key,value)		데이터를 키를 입력받아 맵에 추가한다.
Map.get(key)			맵에 해당 키와 일차하는 데이터를 반환한다.
Map.containsKey(key)		맵에 해당하는 키가 있는지 확인하고, 존재하면 해당 데이터를 반환한다.
Map.containsValue(value)	맵에 해당하는 데이터를 가진 키가 하나 이상 존재하는지 반환한다.
Map.remove(key value)		맵에 해당하는 키값의 데이터를 제거한다.
Map.clear()			맵의 전체 요소를 삭제한다.
Map.size()			맵의 크기를 반환한다.

'Java' 카테고리의 다른 글

16. Java, 제네릭(Generics)  (0) 2022.11.08
15. Java(컬렉션), 스택, 큐, ArrayDeque  (0) 2022.11.08
13. Java, 컬렉션(Collection)  (0) 2022.11.08
12. Java(API), 시간 다루기  (0) 2022.11.07
11. Java(기초), 예외 처리(Exception)  (0) 2022.11.07

+ Recent posts