일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- LG Aimers
- list
- 자바
- 코딩
- AIVLE
- pandas
- Java
- 클래스
- Python
- 정처기 실기
- 코딩테스트
- AI학습
- KT AIVLE
- dictionary
- 정처기
- 데이터
- git
- 인공지능
- AI 윤리
- KT
- ai 전문가 과정
- numpy
- 모각코
- Ai
- 데이터과학
- 알고리즘
- 백준
- 파이썬
- github
- 데이터분석
Archives
- Today
- Total
무향향수
[Java] HashMap, TreeMap 본문
목차💭
- HashMap
- TreeMap
- TreeMap을 사용한 코딩테스트 문제 풀이
더보기
평소 백준 문제는 파이썬으로, SW ACADEMY 코딩테스트 문제들은 자바로 해결한다. 어느날 자바로 문제를 풀다가 파이썬의 딕셔너리를 사용하면 쉽게 풀릴 문제인데 자바로는 어떻게 해결해야할지 몰라서 인터넷 검색을 하다가 자바에 있는 HashMap과 TreeMap을 사용하면 된다는 설명을 듣고 공부하게 되었다.
💭 1. HashMap
Map : key와 value로 구성된 객체를 저장하는 자료구조
HashMap : Map의 성질을 그대로 가지고 있다.
key는 중복이 불가능하고 value는 중복이 가능하다.
HashMap 선언하기
HashMap<String, Integer> hm = new HashMap<String, Integer>();
HashMap 값 추가, 삭제, 출력하기
hm.put("Mango", 1); // 값 추가하기
hm.put("Orange", 2);
hm.put("Peach", 3);
hm.remove("Orange"); // 값 삭제하기 (key값 사용)
hm.clear() // 모든 값 삭제하기
System.out.println(hm.get("Peach")); // 값 출력하기 (key값 사용)
System.out.println(hm); // 모든 key와 value출력하기
💭 2. TreeMap
TreeMap : 객체를 저장하면 자동으로 정렬된다.
데이터를 저장할 때 바로 정렬되기 때문에 추가, 삭제가 느려서 HashMap보다 성능이 떨어진다.
그러나 데이터를 정렬된 상태로 저장 및 출력해야되는 경우 TreeMap을 사용하는 것이 더 좋다.
TreeMap과 HashMap은 선언할 때만 다르고 값 추가, 삭제, 출력은 모두 동일하게 사용하면 된다.
TreeMap 선언하기
TreeMap<String, Integer>tm = new TreeMap<String, Integer>();
TreeMap 값 추가, 삭제, 출력하기
tm.put("Mango", 1); // 값 추가하기
tm.put("Orange", 2);
tm.put("Peach", 3);
tm.remove("Orange"); // 값 삭제하기 (key값 사용)
tm.clear() // 모든 값 삭제하기
System.out.println(tm.get("Peach")); // 값 출력하기 (key값 사용)
System.out.println(tm); // 모든 key와 value출력하기
🍒 3. TreeMap을 사용한 코딩테스트 문제 풀이
<문제>
빵과 빵의 가격을 각각 입력받는다.
가격이 싼 순서대로 출력하고 만약 가격이 같은 경우 이름이 사전순으로 앞에있는 빵을 출력해준다.
<문제풀이>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.TreeMap;
public class SmallEcho {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
TreeMap<String, Integer> bread = new TreeMap<String, Integer>();
String A = br.readLine();
int N = Integer.valueOf(br.readLine());
String B = br.readLine();
int M = Integer.valueOf(br.readLine());
bread.put(A, N); // 빵1 & 가격
bread.put(B, M); // 빵2 & 가격
if (bread.get(A) > bread.get(B))
System.out.println(A);
else if (bread.get(A) < bread.get(B))
System.out.println(B);
else
System.out.println(bread.firstKey());
}
}
'SW아카데미 (23) > JAVA' 카테고리의 다른 글
[Java] Integer.valueOf()와 Integer.parseInt()의 차이 (0) | 2023.08.01 |
---|---|
[Java] charAt()과 indexOf()의 차이 (0) | 2023.08.01 |
[Java] toCharArray(), Arrays.sort() (0) | 2023.07.26 |
[Java 입출력] BufferedReader, BufferedWriter, StringTokenizer (1) | 2023.07.25 |
[Java]오버로딩 (0) | 2023.07.12 |