1. String & StringBuilder (문자열 조작)
String (불변)
String은 불변(immutable)하기 때문에 문자열을 변경하면 새로운 객체가 생성됩니다.
1) 문자열 추가
String str = "Hello";
str = str + " World"; // 새로운 객체 생성
System.out.println(str); // Hello World
2) 문자열 변경
String str = "Hello";
str = str.replace("H", "J"); // 새로운 객체 생성
System.out.println(str); // Jello
3) 문자열 삭제
String str = "Hello";
str = str.replace("l", ""); // "l"을 제거한 새로운 문자열 생성
System.out.println(str); // Heo
StringBuilder (가변)
StringBuilder는 가변(mutable) 객체이므로 같은 객체 내에서 값을 수정할 수 있습니다. 따라서 문자열을 여러번 변경시켜야할 경우 StringBuilder를 사용해야 효율적으로 동작할 수 있습니다.
1) 문자열 추가 (append())
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb); // Hello World
2) 문자열 삽입 (insert())
StringBuilder sb = new StringBuilder("Hello");
sb.insert(5, " Beautiful");
System.out.println(sb); // Hello Beautiful
3) 문자열 삭제 (delete())
StringBuilder sb = new StringBuilder("Hello World");
sb.delete(5, 11); // " World" 삭제
System.out.println(sb); // Hello
4) 문자열 변경 (setCharAt())
StringBuilder sb = new StringBuilder("Hello");
sb.setCharAt(0, 'J'); // 첫 번째 문자를 J로 변경
System.out.println(sb); // Jello
2. List (순서 O, 중복 O, 인덱스 기반)
List는 요소를 추가, 수정, 삭제할 수 있는 기능을 제공합니다.
1) 값 추가 (add())
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
System.out.println(list); // [Java, Python, C++]
• add(value): 맨 뒤에 추가
• add(index, value): 특정 위치에 추가
list.add(1, "C#"); // 1번 인덱스에 C# 추가
System.out.println(list); // [Java, C#, Python, C++]
2) 값 변경 (set())
list.set(1, "Kotlin"); // 1번 인덱스 값을 Kotlin으로 변경
System.out.println(list); // [Java, Kotlin, Python, C++]
3) 값 삭제 (remove())
list.remove(2); // 2번 인덱스 제거
System.out.println(list); // [Java, Kotlin, C++]
list.remove("Kotlin"); // 값으로 제거
System.out.println(list); // [Java, C++]
3. Queue (FIFO, 선입선출)
Queue는 먼저 들어온 데이터가 먼저 나가는 구조입니다.
1) 값 추가 (offer() / add())
Queue<String> queue = new LinkedList<>();
queue.offer("A");
queue.offer("B");
queue.offer("C");
System.out.println(queue); // [A, B, C]
2) 값 제거 (poll() / remove())
System.out.println(queue.poll()); // A (가장 먼저 들어간 요소 제거)
System.out.println(queue); // [B, C]
3) 첫 번째 요소 확인 (peek())
System.out.println(queue.peek()); // B (제거되지 않음)
System.out.println(queue); // [B, C]
5. HashMap (Key-Value 저장)
HashMap은 Key-Value 쌍을 저장하고, 키를 기준으로 값을 조작할 수 있습니다.
1) 값 추가 (put())
Map<String, Integer> map = new HashMap<>();
map.put("Java", 90);
map.put("Python", 95);
map.put("C++", 85);
System.out.println(map); // {Java=90, Python=95, C++=85}
2) 값 변경 (put())
map.put("Java", 100); // 기존 값 변경
System.out.println(map); // {Java=100, Python=95, C++=85}
3) 값 삭제 (remove())
map.remove("C++"); // 키 삭제
System.out.println(map); // {Java=100, Python=95}
4) 특정 키 존재 여부 (containsKey())
System.out.println(map.containsKey("Java")); // true
System.out.println(map.containsKey("C++")); // false
5) 특정 값 존재 여부 (containsValue())
System.out.println(map.containsValue(95)); // true
System.out.println(map.containsValue(85)); // false
6) 모든 키 조회 (keySet())
System.out.println(map.keySet()); // [Java, Python]
7) 모든 값 조회 (values())
System.out.println(map.values()); // [100, 95]
'코딩테스트(JAVA)' 카테고리의 다른 글
[코딩테스트] 배열과 리스트 변환 (0) | 2025.01.30 |
---|---|
[코딩테스트] 프리미티브 타입(Primitive Type)과 레퍼런스 타입(Reference Type) (0) | 2025.01.30 |
[코딩테스트] 순열, 조합, 중복순열, 중복조합 (1) | 2025.01.08 |
[JAVA] 인접행렬, 인접리스트, DFS (1) | 2024.11.17 |
[JAVA] 객체의 정렬 (1) | 2024.11.08 |