HashMap의 기본적인 사용법
import java.util.HashMap;
import java.util.Scanner;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashMap<Character, Integer> mp = new HashMap<>(); //HashMap 객체 생성, 제네릭스로 키 타입과, 값 타입을 명시해주어야 한다.
String str = sc.nextLine();
//HashMap 객체에 데이터 넣기
for(char x : str.toCharArray()){
mp.put(x,mp.getOrDefault(x,0)+1); //생성한 HashMap 객체 내에 존재하는 키라면 그 키의 값을 1증가시켜 갱신하고, 없다면 기본값 0에 1을 더해서 추가한다.
}
//HashMap 객체에서 키, 값 데이터 꺼내기
for(char x : mp.keySet()){
System.out.println(x+" "+mp.get(x));
}
System.out.println(mp.containsKey('A')); // HashMap 객체 내에 해당 키가 존재하는지 여부를 판별
System.out.println(mp.containsValue(5)); // HashMap 객체 내에 해당 값이 존재하는지 여부를 판별
System.out.println(mp.size()); // HashMap 객체 내에 몇개의 데이터가 있는지 확인
System.out.println(mp.remove('A')); // HashMap 객체 내에 해당하는 키값의 데이터를 삭제 후 그 값을 리턴해준다.
System.out.println(mp.size()); // HashMap 객체의 사이즈가 1 감소한 것을 확인할 수 있다.
System.out.println(mp.remove('A')); // 존재하지 않는 키 데이터를 삭제하려고 하면 null 값 리턴
}
TreeSet
TreeSet은 정렬기능을 사용할 수 있는 클래스로써 중복 값들을 제거하고자 할 때 사용하는 클래스이다.
import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;
public static void main(String[] args) {
int[] arr = {10,55,30,346,5};
TreeSet<Integer> ts = new TreeSet<>(); // 디폴트로 오름차순 정렬
// TreeSet<Integer> ts2 = new TreeSet<>(Comparator.reverseOrder()); // 내림차순 정렬 설정
for(int x : arr){
ts.add(x);
}
System.out.println(ts); // 전체 TreeSet 값들을 [...] 형식으로 출력
System.out.println(ts.first()); // TreeSet 값들 중 가장 작은 값을 리턴 (내림차순으로 정렬된 경우 최댓값 리턴)
System.out.println(ts.last()); // TreeSet 값들 중 가장 큰 값을 리턴 (내림차순으로 정렬된 경우 최솟값 리턴)
System.out.println(ts.remove(30)); // TreeSet 값들 중 특정 값을 삭제
System.out.println(ts.higher(30)); // TreeSet 값들 중 입력값보다 큰 데이터 중 최소값 출력 없으면 null
System.out.println(ts.lower(30)); // TreeSet 값들 중 입력값보다 작은 데이터 중 최댓값 출력 없으면 null
// for each 문으로 TreeSet 값들을 순서대로 출력
for(int x : ts){
System.out.print(x+" ");
}
System.out.println();
// Iterator 사용
Iterator iter = ts.iterator();
while(iter.hasNext()){
System.out.print(iter.next() + " ");
}
}
'코딩테스트 > 인프런 강의' 카테고리의 다른 글
05. Stack & Queue (0) | 2022.10.14 |
---|---|
03. Two Pointer Algorithm & Sliding Window (0) | 2022.10.11 |
01. String 파트 (0) | 2022.09.26 |