목록Programming/[DataStructure] (23)
른록노트
Deque 참고링크 Module java.base Package java.util Interface Deque Type Parameters: E - the type of elements held in this deque All Superinterfaces: Collection, Iterable, Queue All Known Subinterfaces: BlockingDeque All Known Implementing Classes: ArrayDeque, ConcurrentLinkedDeque, LinkedBlockingDeque, LinkedList public interface Deque extends Queue설명 양쪽 끝에서 요소 삽입 및 제거를 지원하는 선형 컬렉션입니다. deque 라는 이름은 "..
Queue 참고링크 Module java.base Package java.util Interface Queue Type Parameters: E - the type of elements held in this queue All Superinterfaces: Collection, Iterable All Known Subinterfaces: BlockingDeque, BlockingQueue, Deque, TransferQueue All Known Implementing Classes: AbstractQueue, ArrayBlockingQueue, ArrayDeque, ConcurrentLinkedDeque, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingDeque,..
Vector 참고링크 Module java.base Package java.util Class Vector java.lang.Object java.util.AbstractCollection java.util.AbstractList java.util.Vector Type Parameters: E - Type of component elements All Implemented Interfaces: Serializable, Cloneable, Iterable, Collection, List, RandomAccess Direct Known Subclasses: Stack public class Vector extends AbstractList implements List, RandomAccess, Cloneab..
Stack 참고링크 Module java.base Package java.util Class Stack java.lang.Object java.util.AbstractCollection java.util.AbstractList java.util.Vector java.util.Stack All Implemented Interfaces: Serializable, Cloneable, Iterable, Collection, List, RandomAccess public class Stack extends Vector설명 Stack은 데이터를 LIFO 방식을 사용하여 동작합니다 마지막으로 들어온 데이터가 첫번째로 나가는 방식 입니다. Vector를 상속받아서 Vector의 메서드들을 사용합니다 사실 Vector를..
Linked List 참고링크 public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, Serializable설명 LinkedList는 데이터 필드를 보유하는 노드와 다른 노드에 대한 참조로 구성된 선형 데이터 구조입니다. synchronized가 되어있지 않아서 외부에서 동시성 처리를 해줘야합니다. (동시성 처리를 위해 아래와 같이 사용하는게 최선의 방법입니다.) List list = Collections.synchronizedList(new LinkedList(...)); 사용법 import java.util.Collections; import java.util.LinkedList; import j..
ArrayList 참고링크 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable설명 일반 배열과 다르게 크기를 지정하지 않아도 되며 제너릭으로 타입을 지정할 수 있는 장점이 있는 자료구조이다. 순서가 보장되며, 처음 디폴트 사이즈는 10이고 지정한 사이즈를 초과하게되면 내부적으로 Object 배열을 사용해서 더 큰 사이즈의 배열을 만들고 기존 Object 배열을 복사해서 사이즈를 자동적으로 늘립니다. 사용법 import java.util.ArrayList; ArrayList arrayList = new ArrayList(); arrayList.add(Object); arrayList..
참고사이트 https://www.baeldung.com/java-hashset-arraylist-contains-performance 1. HashSet.contains vs ArrayList.indexOf 시간복잡도 차이 HashSet은 HashMap 기반으로 구현되어 있어서 contains 메서드를 실행할때 HashMap.contains() 메서드를 불러옵니다. 그러므로 시간복잡도는 O(1) 입니다. AllayList의 indexOf는 배열에 있는 항목의 수에 따라 시간복잡도가 결정되므로 O(n)입니다. 2. 결론 HashSet.contains가 더 빠릅니다.