Java - Map
JAVA(자바), Python(파이썬) 기반의
AI 활용 응용 소프트웨어 개발자 양성 과정
찾으시는 정보가 있으시다면
주제별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));
}