컬렉션 프레임워크(Collection Framework)
Map 컬렉션
Map 인터페이스
키(Key)와 값(Value)의 쌍으로 이루어진 데이터의 집합
키와 값은 모두 객체
키는 중복될 수 없지만 값은 중복 저장 가능
기존에 저장된 데이터와 중복된 키 값을 저장하면, 기존의 값은 없어지고 마지막에 저장된 값이 남음(덮어씀)
구현 클래스:
HashMap
, Hashtable, LinkedHashMap, Porperties, TreeMap일반적으로 키 타입은 String을 주로 사용
HashMap을 생성하기 위해서는 key 타입과 value 타입 매개변수로 주고 기본 생성자 호출
기본 형식
Map<K, V> map = new HashMap<K, V>();
HashMap 예제
HashMapEx.java
package map;
import java.util.HashMap;
import java.util.Map;
public class HashMapEx {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
// 객체 저장
map.put("김준면", 85);
map.put("김민석", 90);
map.put("도경수", 95);
map.put("김준면", 100); // 동일 키 존재. 새로운 값으로 덮어씀
System.out.println("총 Entry 수: "+map.size());
System.out.println(map);
// key로 검색: value 반환
System.out.println("김준면 검색: "+map.get("김준면"));
// 키 값 출력
System.out.println("100(value) 검색: "+map.keySet());
// key와 value 출력
for(String key : map.keySet()) System.out.println(key + " : "+ map.get(key));
// 객체 삭제 :remove(key)
map.remove("김민석");
System.out.println("총 Entry 수: "+map.size());
map.clear();
System.out.println("총 Entry 수: "+map.size());
}
}
HashMap 예제 -2
- HashMap에 배열 넣기
HashMapEx2.java
package map;
import java.util.HashMap;
import java.util.Set;
public class HashMapEx2 {
public static void main(String[] args) {
HashMap<String, String[]> phone = new HashMap<>();
phone.put("친구1", new String[] {"010-1234-5678", "02-111-1111", "fri@gmail.com"});
phone.put("친구2", new String[] {"010-2345-6789", "02-222-2222", "fri2@gmail.com"});
phone.put("부장", new String[] {"010-3456-7890", "02-333-3333", "boss1@gmail.com"});
phone.put("과장", new String[] {"010-4567-8901", "02-444-4444", "boss2@gmail.com"});
phone.put("대리", new String[] {"010-5678-9012", "02-555-5555", "boss3@gmail.com"});
System.out.println("총 그룹 수: "+phone.size());
// 내 연락처 모든 정보 조회
for(String key : phone.keySet()) {
System.out.print("key 값 출력: ");
String [] phoneList = phone.get(key);
for(String one : phoneList) {
System.out.print(one + " | ");
}
System.out.println();
}
System.out.print("\n부장 검색: ");
if(phone.containsKey("부장"))
for(String one : phone.get("부장"))
System.out.print(one + " | ");
}
}
HashMap 연습문제 -1
- (영어, 한글) 단어를 상으로 HashMap에 저장하고
- 영어로 한글을 검색하는 프로그램 작성
- exit 입력하면 종료
HashMapEx3.java
package map;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class HashMapEx3 {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
Scanner scan = new Scanner(System.in);
// 객체 저장
map.put("apple", "사과");
map.put("summer", "여름");
map.put("school", "학교");
map.put("candy", "사탕");
map.put("water", "물");
while(true) {
System.out.print("찾고 싶은 단어는?");
String search = scan.next();
if(search.equals("exit")) {
System.out.println("종료합니다");
break;
}else {
if(map.keySet().contains(search)) {
System.out.println(map.get(search));
}else {
System.out.println("없는 단어 입니다");
}
}
}
scan.close();
}
}
Collections 클래스
- java.util. 패키지에 포함된 클래스
- 컬렉션을 다루는 유용한 메소드 지원
- sort(): 정렬
- reverse(): 반대로 정렬
- max() / min() : 최대값 / 최소값
- binarySearch(): 검색
CollectionsEx.java
package map;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class CollectionsEx {
public static void main(String[] args) {
List<String> myList = new ArrayList<>();
myList.add("트랜스포머");
myList.add("스타워즈");
myList.add("매트릭스");
myList.add("터미네이터");
myList.add("아바타");
System.out.print("리스트 순서 : ");
for(String movie : myList) {
System.out.print(movie + " | ");
}
System.out.println("오름차순 정렬: ");
Collections.sort(myList);
System.out.println(myList);
// 검색
int index = Collections.binarySearch(myList, "스타워즈");
System.out.println("스타워즈는(은) " + (index+1) + "번째 입니다.");
System.out.println("내림차순 정렬: ");
Collections.reverse(myList);
printList(myList);
}
static void printList(List list) {
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String element = it.next();
String sep;
if(it.hasNext())
sep = "->";
else
sep = "\n";
System.out.print(element + sep);
}
}
}
'프로그래밍 언어 > Java 프로그래밍' 카테고리의 다른 글
컬렉션 프레임워크(5) Set 인터페이스 - HashSet (0) | 2021.11.30 |
---|---|
컬렉션 프레임워크(4) List 인터페이스- Vector (0) | 2021.11.30 |
컬렉션 프레임워크(3) List 인터페이스 - LinkedList (0) | 2021.11.30 |
컬렉션 프레임워크(2) List 인터페이스- ArrayList 연습문제 (0) | 2021.11.30 |
컬렉션 프레임워크(1) List 인터페이스- ArrayList (0) | 2021.11.30 |