TIL

8/23

iksadnorth 2023. 8. 23. 22:41

👣 개요

Effective Java를 전체적으로 다시 훑어 처음에 공부했던 부분을 다시 상기시키는 작업을 수행했다.
동시에 '자바 ORM 표준 JPA 프로그래밍'이라는 책을 구입해 조금 읽었다.

내일[8/24]에 알고리즘 문제를 푸는 시험을 보기 때문에 Java에서 자주 사용되는 문법들을 
다시 정리하기도 했다. 정리한 내용은 다음과 같다.

1. 특정 범위 내에서만 증가하게 하기.

newC = newC + n;
newC = floor + (newC - floor) % (ceil - floor);

2. 특정 값으로 List 초기화

List<String> copies = Collections.nCopies(3, "초기화할 값");
// copies : ["초기화할 값", "초기화할 값", "초기화할 값"]

3. Set의 교집합, 합집합, 차집합

Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5, 6, 7));

// 교집합
Set<Integer> intersection = new HashSet<>(set1);
intersection.retainAll(set2); // 출력: [3, 4, 5]
// 합집합
Set<Integer> union = new HashSet<>(set1);
union.addAll(set2); // 출력: [1, 2, 3, 4, 5, 6, 7]
// 차집합
Set<Integer> difference = new HashSet<>(set1);
difference.removeAll(set2); // 출력: [1, 2]

4. 유클리드 호제법

int gcd(int a, int b) {
    // 더 큰 상수 찾기.
    int x,y;
    if(a > b) {
        x=a; y=b;
    }
    
    // 유클리드 호제법
    int tmp;
    while(y > 0) {
        tmp = x%y;
        x = y; y = tmp;
    }
    
    // 최대 공약수 출력
    return x;
}

'TIL' 카테고리의 다른 글

8/25  (0) 2023.08.25
8/24  (0) 2023.08.24
8/22  (0) 2023.08.22
8/21  (0) 2023.08.21
WIL - 8/14 ~ 8/20  (0) 2023.08.20