ETC

1. Stream (자바 스트림)

  • 배열 또는 리스트 처리:

    • 리스트의 모든 요소를 출력:

      List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
      list.stream().forEach(System.out::println);
    • 리스트 필터링:

      List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
      List<Integer> evenNumbers = list.stream()
                                      .filter(num -> num % 2 == 0)
                                      .collect(Collectors.toList());  // 짝수만 필터링
    • 배열을 정렬 후 출력:

      int[] arr = {3, 1, 4, 1, 5};
      Arrays.stream(arr).sorted().forEach(System.out::println);

2. ASCII Code (아스키 코드)

  • 문자를 아스키 코드로 변환:

    char c = 'A';
    int ascii = (int) c;  // 'A'의 아스키 코드값 (65)
  • 아스키 코드를 문자로 변환:

    int ascii = 97;
    char c = (char) ascii;  // 97은 'a'에 해당

3. Math (수학 연산)

  • Math 라이브러리에서 자주 쓰이는 함수:

    • 최대값과 최소값:

      int max = Math.max(10, 20);  // 20
      int min = Math.min(10, 20);  // 10
    • 절대값:

      int absValue = Math.abs(-10);  // 10
    • 거듭제곱:

      double power = Math.pow(2, 3);  // 2의 3제곱 (8.0)
    • 제곱근:

      double sqrt = Math.sqrt(16);  // 16의 제곱근 (4.0)

4. Comparator (정렬 기준 정의)

  • 커스텀 정렬을 위한 Comparator 사용:

    List<String> list = Arrays.asList("apple", "banana", "cherry");
    list.sort((a, b) -> a.length() - b.length());  // 문자열 길이 기준 오름차순 정렬
  • Comparator 사용 예시 (내림차순 정렬):

    List<Integer> list = Arrays.asList(1, 3, 2);
    list.sort(Comparator.reverseOrder());  // 내림차순 정렬

5. Iterator (반복자)

  • 리스트 요소 순회:

    List<String> list = Arrays.asList("apple", "banana", "cherry");
    Iterator<String> iterator = list.iterator();
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }

6. % 10, / 10 (자릿수 분리 및 처리)

  • 숫자의 각 자릿수를 추출하기:

    int num = 12345;
    while (num > 0) {
        int digit = num % 10;  // 마지막 자릿수
        System.out.println(digit);
        num /= 10;  // 마지막 자릿수 제거
    }

7. Random (난수 생성)

  • 난수 생성 (java.util.Random):

    Random rand = new Random();
    int randomInt = rand.nextInt(100);  // 0에서 99 사이의 정수 난수 생성
    double randomDouble = rand.nextDouble();  // 0.0에서 1.0 사이의 실수 난수 생성
  • 난수 범위 지정:

    int min = 1;
    int max = 10;
    int randomNum = rand.nextInt((max - min) + 1) + min;  // min에서 max 사이의 난수 생성

8. Java 정수의 최대/최소값

  • 정수형의 최대값과 최소값:

    int maxInt = Integer.MAX_VALUE;  // 2147483647
    int minInt = Integer.MIN_VALUE;  // -2147483648
  • Long 타입의 최대값과 최소값:

    long maxLong = Long.MAX_VALUE;  // 9223372036854775807L
    long minLong = Long.MIN_VALUE;  // -9223372036854775808L

9. 최소공배수 (LCM), 최대공약수 (GCD), 유클리드 알고리즘

  • 최대공약수 (GCD)를 구하는 유클리드 알고리즘:

    int gcd(int a, int b) {
        if (b == 0) return a;
        return gcd(b, a % b);
    }
  • 최소공배수 (LCM) 구하기:

    int lcm(int a, int b) {
        return a * (b / gcd(a, b));  // 두 수의 곱을 최대공약수로 나눈 값
    }

Last updated