java 21- SequencedCollection의 특징

Yellta·2025년 5월 6일

java

목록 보기
6/6

정렬데이터의 혁명? 이라고 할 수 있는 자료구조가 나왔다.

Sequenced Collections

  • 정렬 데이터에 특화 되어있다.
  • List, Array 보다 효율적으로 데이터를 관리할 수 있다.
  • 자바 21의 새로운 인터페이스이다.

특징

  • 순서를 유지한다 .
  • 맨앞, 맨 뒤에 접근 가능하다.(getFirst(), getLast(), addFirst(), addLast())
  • 데이터를 뒤집을 수도 있다.(reversed())'

어째서 Sequence Collection은 유용한가?

List, set같은 자바 기본은 중간 요소 접근에 중심을 두었다.
하지만 많은 데이터 시나리오는 데이터 리스트의 처음과 끝에서 시작한다.

큐 -> 앞에서 꺼내기, 뒤에서 추가하기
스택 -> 앞에서 넣고 앞에서 빼기
최근 본 항목 리스트 : 앞에서 넣고 뒤에서 오래된 항목 제거

SequenceCollection은 인터페이스이기 때문에 위의 기능을 모두 사용할 수 있다.
아래에서 조금 더 자세하게 알아보자

💡 핵심 요약: SequencedList 하나로 큐/스택/덱 동작 모두 가능!

자료구조를 직접 구현하지 않는다.

sequence는 인터페이스 형식이다.
자료구조의 공통 동작의 하나의 표준 interface에 묶어놓아서 때로는 큐처럼, 스택처럼, 덱처럼사용이 가능하다.

Deque<String> queue = new ArrayDeque<>();
queue.addLast("A"); // offer
queue.removeFirst(); // poll

스택

Deque<String> stack = new ArrayDeque<>();
stack.addLast("A"); // push
stack.removeLast(); // pop
SequencedList<String> seqList = new LinkedList<>();

// 큐처럼 사용
seqList.addLast("A");      // enqueue
String first = seqList.removeFirst();  // dequeue

// 스택처럼 사용
seqList.addLast("B");      // push
String top = seqList.removeLast();     // pop

위처럼 서로 다른 메서드를 가진 queue stack과 다르게 SequencedList를 알아두면 두가지의 기능을 모두 사용할 수 있다.

시간복잡도는 어떻게 될까?

![[Pasted image 20250506112622.png]]
sequenced는 인터페이스이기 떄문에 구현체가 무엇이냐에 따라서 시간 복잡도가 달라진다.
값을 많이 추가하는 경우라면 LInkedList
값을 읽어오는 작업이 많다면 ArrayList로 구현하도록 하자

참고링크

profile
저 이제 풀스택하려구요 flutter + express.js공부하렵니다.

0개의 댓글