티스토리 뷰

TIL

[오늘 한 것 & 배운 것]

호호홍얍얍 2022. 9. 1. 18:27

오늘 한 것

1. 코딩테스트 연습

 

배운 것

1. Array, List

2. 프로세스, 스레드

3. Wrapper 클래스

 

1.

- 컬렉션 프레임웤

  • 데이터 집단을 저장하는 클래스들을 표준화한 설계
  • 컬렉션 인터페이스: Collection(List, Set), Map
  • 컬렉션 클래스: ArrayList, HashMap, ...

- List

  • 순서가 있는 데이터의 집합
  • 데이터의 중복을 허용한다

-- ArrayList

  • 배열의 저장공간을 처음부터 지정해야 한다
  • 더 큰 공간이 필요하면 새로운 더 큰 배열을 생성해서 기존 배열의 내용을 복사하여 새로운 배열에 저장한다
  • 메모리 상에 연달아 공간을 확보한다
  • 첫 번째 위치만 알면, index로 상대적 위치를 빠르게 찾을 수 있다
  • Vector는 스레드 세이프하기 때문에 멀티 스레드 환경이 필요하면 Vector를 사용한다 - 하지만 예전과의 호환을 위해서만 남아 있는 것이기 때문에 안 쓰는 게 좋음
  • 중간 데이터를 추가/삭제할 때는 데이터를 복사 후에 집어 넣는 방식이므로 효율이 좋지 않다

-- LinkedList

  • 한 노드가 다음 노드의 주소를 저장하여, 불연속적으로 존재하는 데이터를 서로 연결한 형태
  • 자바에서는 이전 노드도 저장하는 더블 링크드 리스트로 구현되어 있다
  • 중간 데이터를 추가/삭제할 때는 참조를 변경하기만 하면 되서 처리속도가 매우 빠르다

--- 순차적으로 추가/삭제하는 경우에는 ArrayList가 LinkedList보다 빠르지만, 중간데이터를 추가/삭제하는 경우에는 LinkedList가 더 빠르다

 

-- Stack

  • 마지막에 저장한 데이터를 가장 먼저 꺼내는 LIFO 구조
  • 순차적으로 데이터를 추가하고 삭제하기 때문에 ArrayList와 같은 배열 기반의 컬렉션 클래스가 적합하다
  • 자바에서는 클래스로 구현되어 있다

-- Queue

  • 처음에 저장한 데이터를 가장 먼저 꺼내는 FIFO 구조
  • 데이터의 추가/삭제가 쉬운(데이터의 복사가 발생하지 않는) LinkedList로 구현하는 것이 적합하다 - 자바에는 LinkedList가 구현되어 있다

--- PriorityQueue

  • Queue의 구현체, 저장한 순서에 관계없이 우선순위가 높은 것부터 꺼낸다
  •  

 

- Set

  • 순서를 유지하지 않는 데이터의 집합
  • 데이터의 중복을 허용하지 않는다

- Map

  • 키와 값의 쌍으로 이루어진 데이터의 집합
  • 순서는 유지되지 않는다
  • 키는 중복을 허용하지 않고 값은 중복을 허용한다

 

 

2. 프로세스와 스레드

 

3. Wrapper 클래스

https://bibapditura.tistory.com/79

'TIL' 카테고리의 다른 글

[오늘 한 것 & 배운 것]  (0) 2022.09.03
Wrapper 클래스  (0) 2022.09.01
SQL문 - Join, Case when, Datetime  (0) 2022.08.31
[오늘 한 것 & 배운 것]  (0) 2022.08.26
[스프링 핵심 기본 원리] SOLID 원칙  (0) 2022.08.10
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함