java의 자료구조는 java.util.Collection으로 간단 정리 한다.
Collection의 자료구조는 Collections로 algorithm이 구현되어 있음.
Arrays는 덤.(Collection : Collections = 배열 : Arrays)
java.util.Collection
Collection interface는 기본적으로 다음 methods를 이용한다.
- Iterable을 implements 하는건 당연
- add() , addAll() : 데이터 담기용 메소드
- contains() , containsAll() , isEmpty() , equals() , size() : 데이터 확인용
메소드 - clear() , remove() , removeAll() : 데이터 삭제용 methods
java에서 data 저장은 배열(Array)과 다음 네 가지 자료구조이다.
- 순서가 있는 목록(List) 형
- ArrayList
- AttributeList
- LinkedList
- RoleList
- Stack
- Vector
- methods
- 순서가 중요하지 않은 셋(Set) 형
- 동일 key에 값이 중복될 수 없어 unique한 값을 저장할 때 필요함.
- EnumSet
- HashSet / LinkedHashSet
- TreeSet
- methods
- contains(Object o) /containsAll(Collections c): o / c가 모두 포함된지 확인.
- 먼저 들어온 것이 먼저 나가는 큐(Queue) 형
- ArrayDeque
- DelayQueue
- LinkedList
- methods
- offer(): put
- poll() / peek(): 꺼내기 / 들여다보기
- 키-값(key-value) 으로 저장되는 맵(Map) 형 --> Map
- List와 다른 점은 key값에 값이 매칭 되어 있다는 점이 다르다.
- 당연히 key는 중복 불가.
- EnumMap
- HashMap
- TreeMap
- methods
- get() / put() / putAll(Map m) / size() / isEmpty()
- clear()
- containsKey() / containsValue(): key나 value가 있는지 확인
- equals()
- hashCode(): map의 hash code를 return
- keySet(): key를 Set 형태로 return
- values(): Collection<>을 return.
java.util.CollectionsCollection을 쉽게 제어하는데 쓰임.
methods:
- addAll() / copy() / binarySearch() / fill()
- checkedCollection() / checkedMap() / checkedList() / checkedSet()
- checkedSortedMap()/ ~Set()
- disjoint(Collection c1, Collection c2) 하나도 안겹치면 return true
- emptyxxx(): 깡통 List / Map / Set 등을 return
- frequency(Collection c, Object o): c에 o가 몇 개 있는지?
- indexOfSubList(List l, Object o) / lastIndexOfSubList(): l에 o의 첫 번째 index / 마지막 index
- list(): ArrayList로 return
- max() / min()
- nCopy(): n번 복사한 배열
- reverse(): 순서를 꺼꾸로
- rotate() / suffle(): 돌리고 섞기
- swap(a, b): a, b swap
- 그 외 매우 많다! 생략함..
java.util.ArraysArray를 쉽게 제어하는데 쓰임
methods:
- asList(): List 형으로 변환해서 return.
- binarySearch(Object[] o, key):key 값으로 순서를 찾음.
- copyOf() / copyOfRange()
- equals() / deepEquals()
- fill(Object[] a, b): a를 b로 전부 채움
- hashCode(): hash code return
- sort(): 앞의 post에서 소개함.
쓰다보니 길어졌지만 이게 간단 정리한 것이다.
TODO: 너무 뻔한건 지우자
댓글 없음:
댓글 쓰기