_Hiiro
성장을 공유하는 개발자
_Hiiro
전체 방문자
오늘
어제
  • 분류 전체보기 (57)
    • 개발기록 (3)
      • 사이드 프로젝트 (3)
    • 코딩테스트 (5)
      • 인프런 강의 (4)
      • 정리노트 (1)
      • 프로그래머스 (0)
      • 구름 (0)
    • Language (5)
      • Java (5)
    • 우아한테크코스 (43)
      • 우테코 프리코스 (5)
      • 회고 (18)
      • 학습 정리 (18)
      • 글쓰기 (2)
    • 일상 (1)
      • 회고 (1)

블로그 메뉴

  • 홈
  • 방명록
  • 글쓰기
  • 관리자

인기 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
_Hiiro

성장을 공유하는 개발자

코딩테스트/인프런 강의

04. HashMap, TreeSet (해쉬, 정렬지원 Set)

2022. 10. 13. 01:32

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
    '코딩테스트/인프런 강의' 카테고리의 다른 글
    • 05. Stack & Queue
    • 03. Two Pointer Algorithm & Sliding Window
    • 01. String 파트
    _Hiiro
    _Hiiro
    성장을 위한 학습을 하며 배운 것들을 공유합니다.

    티스토리툴바