/ LECTURE

Java - Map

이 페이지는 다음에 대한 공부 기록입니다

JAVA(자바), Python(파이썬) 기반의

AI 활용 응용 소프트웨어 개발자 양성 과정

2021.11.10. ~ 2022.05.18.

찾으시는 정보가 있으시다면
주제별reference를 이용하시거나
우측 상단에 있는 검색기능을 이용해주세요

28일차 수업

========복습========

많이쓰임

List-ArrayList, Set-HashSet

List

List : 순서 존재 / 중복 가능 / ArrayList, LinkedList

  • ArrayList : 단방향, 자료를 순차적으로 접근

  • LinkedList : 양방향, 자료를 양방향에서 접근

삽입 삭제가 빈번할 경우 LinkedList 속도가 빠름

순서가 존재한다 : 인덱스가 존재한다

Set

Set : 순서 미존재 / 중복 불가 / HashSet,TreeSet

  • HashSet : 무작위로 값을 저장, get을 못함, for, iterator을 통해 하나씩 입력 순서와 무관하게 꺼내야함

  • TreeSet : 무작위로 값을 담지만 정렬을 지원해줌, 가장 느린 속도

Map

제너릭이 2개(Key, Value), 기본구조가 2차원 배열

순서 미존재 / Key 중복 불가(중복된 Key가 있다면 덮어쓰기) / Value 중복 가능

순서가 미존재하는 대신 중복이 불가한 Key를 통해서 데이터를 정리

Map<String, Integer> map = new HashMap<>();
map.put(aa,2);
System.out.println(map);	// output will be {aa=2}
System.out.println(map.get(aa);	// output will be 2

======== 끝 ========

28일차 수업

Map

Key와 Value 값 한쌍으로 구성

  • {키=값, 키=값,…}

  • 키 : 값을 찾기 위한 이름, 단서, 인덱스, 도구

  • 순서가 미존재, 키는 중복 불가, 값은 중복 허가

종류

  • HashMap<K,V> : 순서 없고 무작위 저장

  • TreeMap<K,V> : 키에 의해 정렬

  • LinkedHashMap<K,V> : 입력한 순서대로 저장

  • Hashtable<K,V>

선언

  • HashMap<K,V>

  • K : 키를 담당할 값에 대한 자료형(클래스, 문자열, 정수형)

  • V : 값을 담당할 값에 대한 자료형(클래스, 문자열, 정수형)

Map<String, String> map = new HashMap<>();
map.put(name, 스폰지밥);
map.put(age, 33);

인덱스 역할 하는 것이 키

반복을 하려면 키에 대한 정보를 다 알아야함

  • keySet() : Map에 담긴 key에 대한 정보를 Set 형태로 리턴해주는 함수
for(String s : map.keySet()){
	System.out.print( + s +  + map.get(s));
}

// Entry라는 가상 클래스를 이용해 Set 배열로 바꾸기, 성능이 좋음
for(Entry<String, String> entry : map.entrySet()){
	System.out.print( + entry.getKey() +  + entry.getValue);
}

// Iterator과 Entry 동시 사용해보기
Iterator<Entry<String, String>> iter = new map.entrySet().iterator();
while(iter.hasNext()){
	Map.Entry<String,String> entry = (Map.Entry<String,String>)iter.next();
	System.out.print( + entry.getKey() +  + entry.getValue);
}

// Iterator 사용해보기
Iterator<String> keys = map.keySet().iterator();
while(keys.hasNext()){
	String key = (String)keys.next();
	System.out.print( + key +  + map.get(key));
}