나의개발일지

컬렉션(List, Set) 본문

언어/Java

컬렉션(List, Set)

아. 이렇게 하면 될거 같은데.. 2024. 1. 29. 01:58
728x90


자바 에서 컬렉션(Collection)은 데이터를 저장하고 관리하는 자료 구조를 제공하는 프레임워크이다. 이를 통해 다양한 데이터를 쉽게 다룰 수 있다.


List 인터페이스

<List 계열 주요 메서드>

//추가
add(E element);

//지정된 요소 반환
get(int index);

//지정된 요소를 제거하거나, 주어진 객체와 일치하는 첫번째 요소 제거
remove(int index);
remoave(Object o);

//사이즈 반환
size();

// 비어있는 여부 확인
isEmpty();

// 주어진 요소가 리스트에 포함되어 있는지 여부를 반환
contains(Object o);

// 리스트 비우기
clear();

// 위치 반환
indexOf(Object o);

// 배열로 반환
toArray();

 

1. ArrayList

  • 크기를 동적으로 조절할 수 있는 배열 기반의 리스트
  • 내부적으로 Object[] 에 저장 ( add → ensureCapacityInternal → ensureExplicitCapacity → grow) 메서드
  • 어레이 리스트가 꽉차면 내부적으로 2배씩 증가

2. LinkedList

  • 노드들로 이루어진 연결 리스트
  • 각 노드들은 다음요소의 참조 값과 데이터로 구성된
  • => 각 요소가 다음 요소의 링크 정보를 가지며 연속저으로 구성될 필요 없음

Set 인터페이스

<Set 계열 주요 메서드>

//추가
add(E element);

// 주어진 요소를 set에서 제거
remoave(Object o);

//사이즈 반환
size();

// 비어있는 여부 확인
isEmpty();

// 주어진 요소가 리스트에 포함되어 있는지 여부를 반환
contains(Object o);

// set 비우기
clear();

// 세트의 요소를 반복하는데 사용할 수 있는 Iterator를 반환
iterator()

 

1. HashSet

  • 해시 테이블을 사용한 집합, 순서를 보장하지 않는다
  • 데이터를 구별할 순서(index)가 없어 중복이 허용되지 않는다
  • update는 순서가 없어 불가능

2. LinkedHashSet

  • 삽입 순서를 유지하는 해시 기반 집합
  • 해시테이블과 연결리스트를 결합한 구조
  • 순회시 삽입 순서대로 요소를 반환

3. TreeSet

  • 이진 검색 트리를 사용한 정렬된 집합
  • 요소들은 정렬된 순서로 유지 (defaut : 오름차순)
  • 트리의 특성상 요소들은 정렬되어 있으므로 순회 가능

 

 

 

728x90
반응형

'언어 > Java' 카테고리의 다른 글

컬렉션(Map, Queue, Deque)  (0) 2024.01.29
다형성  (0) 2024.01.28
오버로딩/오버라이딩  (0) 2024.01.25
상속  (0) 2024.01.23
변수  (0) 2024.01.21