본문 바로가기
자바

자바 collection

by y00ns00 2020. 5. 27.

- list 

    arraylist 

       자바의 vector를 개선한 배열로 구현된 List 그말인 즉 데이터가 저장된 순서가 같다.

       사실상 배열과 같은 자료구조이기 때문에 리스트의 연산 자체의 수행시간 속도는 배열과 같다.

    LinkedList

       다음 노드의 주소를 기억하고 있는 List로 배열에 비해 삽입과 삭제가 간단하다.

       하지만 탐색의 경우 첫번째 노드부터 탐색해 나가야 하기 때문에 느리다.

 

 

- map

    hashmap

       가장 일반적으로 사용하는 map hashtable을 사용 key값에 해시함수를 적용하여 나온 index에 value를 저장한다

       중복을 허용하지 않으며 순서가 없다.(같은 값을 다른 키로 저장하는 것은 가능하다.)

   Tree map

     - Red-Black Tree 자료구조를 이용한 Map이다. Tree구조이기 때문에 어느정도 순서를 보장한다.

       TreeMap 클래스는 키와 값을 한 쌍으로 하는 데이터를 이진 검색 트리(binary search tree)의 형태로 저장한다.

       이진 검색 트리는 데이터를 추가하거나 제거하는 등의 기본 동작 시간이 매우 빠르다.

   LinkedHashMap

     - LinkedList로 구현된 HashMap이다 List로 구현되어 있기 때문에 순서가 보장된다.

       하지만 LinkedList특성상 랜덤 접근에서 느릴수 있다.

 

- set

   hashset

     hashMap 에서 key값이 없는 가료형 집합이라고 생각해도 무방하다 값이 포함되어 있는지 아닌지만 관심이 있다.

     순서가 보장되지 않으며 중복허용하지 않는다 set 중에서 가장 많이 사용된다.

   TreeSet

      Red-Black Tree 를 사용한 Set

   LinkedHashSet

      LinkedList HashSet 순서를 보장한다.

 

 

 

추가 array와 arraylist의 다른점

둘 다 배열이라는 점은 동일하나 array는 인덱스로 접근하는 반면 arraylist는 메서드를 통해 접근한다.

또한 arrray는 object뿐만 아니라 primitive타입 예(int,double)도 담을수 있지만

arraylist는 object형(reference,객체)만 담을수 있다.

따라서 정수를 arraylist 에 넣을경우 Integer형은 가능하지만 int형은 안된다

Integer처럼 int와 같은 원시타입을 담을 수 있는 객체를 Wrapper Class라고 한다.

 

 

'자바' 카테고리의 다른 글

Exception 과 Error  (0) 2023.06.08
HashMap과 LinkedHashMap  (0) 2021.05.15
프로세스와 스레드  (0) 2020.06.09
자바 개념정리 객체지향이란  (0) 2020.05.27
자바 개념 - 자바의 특징  (0) 2020.05.27

댓글