2021. 11. 16 TIL

서승원·2021년 11월 16일
0

TIL

목록 보기
20/68

Collection
Collection 은 java 안의 인터페이스 종류를 3가지로 크게 나눈 분류이다.
1. List : ArrayList와 LinkedList가 있다. 순서개념이 있고 중복이 허용된다.
LinkedList는 head 와 tail 두 Node를 이용해 많이 활용한 구조이다.

import 를 통해 List와 LinkedList, ArrayList의 항목을 불러와서 사용해야 한다.
List 인터페이스에서 상속받은 LinkedList, ArrayList 클래스를 정의한 개념으로 공통된 특징으로는 add() 를 이용해 값을 추가한다. size() 를 이용해 데이터를 갯수를 셀수 있고, get() 으로 특정 순서의 데이터를 얻을 수 있다. Iterator 는 계속해서 많이 쓰이는 개념으로 List를 이용한 다양한 method, 그 외의 응용에 쓰일 것이다. 가장 중요한 것은 입력한 순서를 유지하는 형태로 자료를 보관한다는 것이다.

ArrayList와 LinkedList의 중요한 차이점으로는 ArrayList는 저장에 배열을 이용하기 때문에 중간에 데이터를 삭제할 경우 오버헤드가 크다. 배열의 앞쪽 데이터가 삭제되게 되면 앞쪽으로 뒷쪽의 데이터들을 당겨오기 때문이다. LinkedList는 Node를 이용해 저장하기 때문에 동작속도는 느리지만 중간 삭제에 부담이 적다.


위와 같은 코드로 삭제를 생성, 삭제를 해봤을때, 생성 시간은 Array는 70~80ms, Linked는 130~140ms 가 걸렸고 삭제시에는 Array는 52ms Linked 는 160ms 로 데이터의 규모가 커질 경우를 생각하면 유의미한 차이를 보였다.

2.Set
Set은 데이터를 보고나할 수 있지만 순서개념이 없다. 하지만 List보다 빠른 검색과 효율적인 보관이 가능하다.

Set 에는 TreeSet과 HashSet이 있다. TreeSet은 내부적으로 이진트리를 사용해 중복입력이 가능하고 , HashSet은 해쉬 알고리즘을 사용한다. 내부적 동작은 다르지만 함수 사용에 있어서는 동일하다.

3.Map
key 와 value 의 쌍으로 a=b의 형태로 key에 value 값을 대입하는 것과도 같다.

Set과 마찬가지로 TreeSet, HashSet이 있으며 내부적 동작은 다르지만 함수 사용에 있어 동일하다.

profile
2년차 백엔드 개발자, crimy

0개의 댓글