[Java] 코딩테스트 필수 문법

·2024년 10월 8일

항상 파이썬으로 코테 문제를 풀어보다가 처음 자바로 풀려고 하니까 헷갈려서 정리 한번 하고 풀어야겠다 생각했다...

컬렉션 프레임워크

  • 리스트, 스택. 큐, 데크, 해시맵 등이 존재

1. 배열

  • Arrays 클래스의 toString() 메서드 활용 시 배열 요소 쉽게 출력 가능
import java.util.Arrays;

public class Solution {
   public static void main(String[] args) {
     int[] array = { 1, 2, 3, 4, 5 };
     int[] array2 = new int[] { 1, 3, 5, 7, 9 };
     int[] array3 = new int[5];

     array3[0] = 0;
     array3[1] = 2;
     array3[2] = 4;
     array3[3] = 6;
     array3[4] = 8;

     System.out.println(Arrays.toString(array)); // [1, 2, 3, 4, 5]
     System.out.println(Arrays.toString(array2)); // [1, 3, 5, 7, 9]
     System.out.println(Arrays.toString(array3)); // [0, 2, 4, 6, 8]
    } 
}

2. 리스트

  • 일반적으로 ArrayList를 의미
  • 배열과 큰 차이점은 배열은 크기 고정(데이터 삭제, 삽입 x), ArrayList는 가변 (데이터 삽입, 삭제 가능)
// 리스트 객체 생성
ArrayList<Integer> list = new ArrayList<>();
// 값 추가
list.add(1);
list.add(2);
list.add(4);
list.add(6); // ❶

System.out.println(list.get(2)); // ❷ 4, 인덱스로 값에 접근
System.out.println(list);        // ❸ [1, 2, 4, 6]

3. 해시맵

  • 딕셔너리라고 생각, 키와 밸류 쌍을 저장하는 해시 테이블

해시맵 초기화

HashMap<String, Integer> map = new HashMap<>();

해시맵 데이터 삽입과 출력

// 해시맵 값 삽입
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
// 해시맵 값 출력
System.out.println(map); // {banana=2, orange=3, apple=1}

해시맵 데이터 검색

String key = "apple";

if (map.containsKey(key)) {
  int value = map.get(key);
  System.out.println(key + ": " + value); // apple: 1
}
else {
  System.out.println(key + "는 해시맵에 없습니다.");
}

해시맵 수정, 삭제

map.put("banana", 4);
System.out.println(map); // {banana=4, orange=3, apple=1}

map.remove("orange");
System.out.println(map); // {banana=4, apple=1}

문자열

문자열 추가, 삭제

String string = "He";       // ➊
string += "llo";            // ➋
System.out.println(string); // "Hello"

String string = "Hello";
string = string.replace("l", ""); // "l"을 모두 삭제
System.out.println(string); // "Heo"
  • replace(A,B)는 replace의 대상 문자열에서 A를 모두 찾아 B로 변경

람다식

private static class Node {
  int dest, cost;

  public Node(int dest, int cost) {
    this.dest = dest;
    this.cost = cost;
  }
}

public static void main(String[] args) {
  Node[] nodes = new Node[5];
  nodes[0] = new Node(1, 10);
  nodes[1] = new Node(2, 20);
  nodes[2] = new Node(3, 15);
  nodes[3] = new Node(4, 5);
  nodes[4] = new Node(1, 25);
  Arrays.sort(nodes, (o1, o2) -> Integer.compare(o1.cost, o2.cost)); // ➊

  Arrays.sort(nodes, new Comparator<Node>() {
    @Override
    public int compare(Node o1, Node o2) {
      return Integer.compare(o1.cost, o2.cost);
    }
  }); // ➋
}
profile
꾸준히 공부하기

0개의 댓글