CodingTest/Java Grammar Notes 5

[Java] Deque

🔍 Deque - 스택과 큐를 모두 활용하기코딩 테스트에서 스택(Stack) 과 큐(Queue) 자료구조는 필수적으로 사용됨자바에서는 Stack과 Queue가 각각 존재하지만, Deque(Double-Ended Queue)를 사용하면 스택처럼 사용할 수도, 큐처럼 사용할 수도 있으며 성능까지 우수함 📃 DequeDeque(Double-Ended Queue, 데크)는 양쪽(앞/뒤)에서 요소를 추가하고 제거할 수 있는 자료구조 Queue의 확장 형태 스택과 큐의 기능을 모두 제공 ArrayDeque, LinkedList 클래스로 구현 가능 🛠️ Deque 사용법1️⃣ 요소 추가메서드설명실패 시addFirst(E e)앞에 추가IllegalStateExceptionofferFirst(E e)앞에 ..

[Java] 딕셔너리, Map

🔍 Java의 딕셔너리, Map📃 Map의 정의Map은 키-값 쌍(Key-Value Pair)으로 데이터를 저장하는 컬렉션키는 고유해야 하고, 값은 중복 허용HashMap, TreeMap, LinkedHashMap 등이 대표적인 Map 구현체 import java.util.HashMap;HashMap map = new HashMap();🔧 Map의 주요 기능 및 사용법키와 값 할당map.put("apple", 5); // Key: "apple", Value: 5map.put("banana", 10); // Key: "banana", Value: 10map.put("cherry", 7); // Key: "cherry", Value: 7값 가져오기 (키로 검색)System.out.pr..

[Java] StringTokenizer, String.split()

🔍 StringTokenizer✨ 결론StringTokenizer는 단순하고 빠른 문자열 분리가 필요한 경우에 효과적인 도구구분자가 명확하고 복잡하지 않을 때 BufferedReader와 함께 사용하면 코드가 간결해지고 속도도 빠름 ⚠️ 복잡한 구분자 처리나 정규식 활용이 필요하다면 String.split()이 더 적합할 수 있음!📃 StringTokenizerStringTokenizer는 Java에서 문자열을 구분자를 기준으로 분리할 때 사용하는 클래스기존의 문자열을 구분자(예: 공백, 콤마 등)를 기준으로 나누고, 나뉜 각 토큰을 반복적으로 가져올 수 있음 import java.io.*;import java.util.StringTokenizer;public class Main { publ..

[Java] 데이터 타입 변환 (형 변환)

🔍 데이터 타입 변환 (형 변환, Type Casting)형 변환은 데이터를 다른 타입으로 변경하는 작업자바에서는 기본 타입(Primitive Type)과 참조 타입(Reference Type)을 변환하는 다양한 방법이 제공됨✨ 결론자동 형 변환과 명시적 형 변환 자동 형 변환은 JVM이 안전하다고 판단되면 스스로 수행함 명시적 형 변환는 직접 형 변환을 지정해주는 것이며, 데이터 손실 가능성을 주의해야 함 기본 타입 ↔ String 변환 시, String.valueOf와 parseInt/parseDouble 등의 메서드를 활용할 것 형 변환은 유연성을 제공하지만, 적절히 사용하지 않으면 오류와 데이터 손실이 발생할 수 있으니 주의하여 사용할 것 🔄 기본 타입 간 형 변환자바의 기본 타입..

[Java] BufferedReader, Scanner

🔍 BufferedReader, Scanner✨ 결론빠른 입력 속도와 대용량 데이터 처리 => BufferedReader입력 데이터를 간편하게 파싱 => Scanner입력 속도와 파싱 편의성 중 무엇이 중요한지에 따라 선택하자.📃 BufferedReaderBuffer: 임시 저장 공간 문자 기반 입력 스트림을 효율적으로 처리하기 위한 클래스데이터를 한 번에 읽어와 버퍼에 보관 후, 버퍼에서 데이터를 읽어오는 방식 입력 스트림에서 8KB의 버퍼에 데이터를 읽어옴 이후 필요한 만큼 데이터를 버퍼에서 읽어 반환함 I/O 횟수를 줄여 성능을 향상시킴 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));String ..