오늘은 컬렉션의 List 컬렉션 에 대해서 알아보도록 하겠습니다.
먼저 Collection이란?
많은 응용프로그램을 개발을 하다보면, 수많은 데이터를 처리(추가, 삭제 검색..등등) 하게 됩니다.
하지만 이러한 처리에 대해서 어떻게 하면 가장 효율적으로 할수 있을까? 라는 생각으로 접근을 할 수 있습니다. 데이터를 가장 간단하게 처리하는 방법이 무엇이 있을까여? 바로 "배열" 입니다. 데이터를 담을 공간을 어느정도 담을지 선언을 하고, 처리를한다. 무척 간단하죠? ㅋㅋㅋ
근데 배열은 많은 문제점이 있습니다. 일단 데이터를 얼마나 처리를 할지에 대한 불문명함과 또한 그런거를 모르고 아주 크게 데이터 공간을 선언을하면, 불필요한 공간이 남게 됩니다. 그리고 어떠한 인덱스 자리에 데이터를 삭제를 하게되면..그 공간은 비어있게 되는 것이지요.. 이러한 많은 문제점등이 있기 떄문에.. JAVA에서는 배열의 문제점을 해결하고 자료구조(Data Structure)를 바탕으로 컬렉션 프레임워크(Collection FrameWork)를 만들었습니다.
그렇다면,, JAVA 컬렉션에는 어떠한 것들이 있는지 살펴보도록 하겠습니다.
* JAVA Collection FrameWork 주요 인터페이스 및 클레스
LinkedList, Stack, Vector, ArrayList 는 List인터페이스를 구현한 클레스들이고, HashSet, TreeSet은 Set인터페이스를, 그리고 HashTable, HashMap, TreeMap, Property 는 Map 인터페이스를 구현한 클레스 입니다.
* JAVA Collection FrameWork 주요 인터페이스의 특징
인터페이스 |
구현클레스 |
특징 |
List |
ArrayList Vector LinkedList |
- 순서를 유지하고 저장 -중복 저장 가능 |
Set |
HashSet TreeSet |
- 순서를 유지하지 않고 저장 - 중복 저장 불가능 |
Map |
HashMap HashTable TreeMap Property |
- 키와 값의 쌍으로 저장 - 키는 중복 저장 안 됨 |
'SH.Language > Java' 카테고리의 다른 글
[JAVA] Collection - Set 컬렉션(HashSet, TreeSet) (1) | 2018.01.22 |
---|---|
[JAVA] Collection Framework - List 컬렉션(ArrayList, Vector, LinkList) (0) | 2018.01.18 |
[JAVA] Wrapper 클레스 (0) | 2018.01.04 |
[JAVA] String, StringBuffer, StringBuilder 클레스 (0) | 2018.01.02 |
[JAVA] Class 클레스 - getClasss(), forName(), Reflection(리플렉션), newInstance() (0) | 2017.12.22 |