JAVA_Collection2
Map (인터페이스)
: Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조이다.
-> key와 value의 구조로 하나의 데이터를 저장한다.
-> 데이터 접근 구조 : Key를 찾아 데이터를 리턴한다.
= Key는 중복으로 사용하지 않는 데이터로 지정해야 한다.
-> 데이터의 key가 있기때문에 데이터 불러올 때 반복문 필요없음
-> 반복문 필요없기 때문에 list구조보다 훨씬 간단하게 사용할 수 있음
* Map 인터페이스의 메서드
- V put(K key, V value) : k, v는 제네릭 타입이고, <키, 값>으로 저장된다.
- boolean containsKey(Object k) : 맵에 키가 있다면 true 없다면 false
- boolean containsValue(Object v) : 맵에 value가 있다면 true 없다면 false
- V get (Object K) : Key에 매칭되는 값을 리턴
예시 1)
Map<String, member> = new HashMap<String, member>();
m.put("10가1234", new member("김유신"));
V put( k key, V value)
K String, V - member
예시 2)
m.containsKey("20사1234");
boolean containsKey(Object K)
Object -String
1. HashMap
: 해시맵은 이름 그대로 해싱(Hashing)된 맵(Map)이기 때문에 많은 양의 데이터를 검색할 때 효율적이다.
-> 키를 해싱하여 자료를 저장하고 꺼내오기 때문에 속도가 빠르니까!
* 스프링에서 자주 사용
-> HashMap 사용시 input name값이 키, value값이 value로 자동저장되기 때문
* null값을 허용
2. HashTable
: HashMap과 사용법이 거의 동일한 컬렉션(Collection)
HashTable은 자바에서 해시 테이블을 구현한 클래스 중 가장 오래됨
HashMap과는 다르게 null값을 허용하지 않는다.
3. TreeMap
: TreeMap에서는 Tree라는 개념이 중요! TreeSet에서 처럼 이진트리 구조를 사용
마찬가지로 객체를 저장하면 자동으로 오름차순 정렬이 된다.
* 이진트리
: 각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료 구조
- node : 데이터가 들어가는 공간
- root : 최상위 node
* 이진트리 출력 순서
- 전위 : 가운데 -> 왼쪽 -> 오른쪽 순서로 출력
- 중위 : 왼쪽 -> 가운데 -> 오른쪽 순서로 출력
- 후위 : 왼쪽 -> 오른쪽 -> 가운데 순서로 출력
4. Properties
: Properties 클래스는 HashTables의 하위 클래스이다.
HashTables를 상속 받았기 때문에 Map의 속성 즉, Key와 Value를 갖는다.
HashMap과 큰 차이가 없지만, Properties 클래스는 파일 입출력을 지원한다
댓글
댓글 쓰기