서로 다른 것들 중 몇 개를 뽑아서 한줄로 나열하는 것서로 다른 n개중 r개를 택하는 순열 == nPrnPn == n!n>12 인 경우 시간 복잡도가 폭발적으로 증가순열 자바 구현서로 다른 n개의 원소 중에서 중복을 허용하여 r개를 뽑아서 한 줄로 나열하는 것n^r중복
객체를 사용자가 정의한 정렬 기준에 맞춰 정렬해야 할 경우 ex)이차원 배열에서 0 인덱스에 오름차순, 1 인덱스에 내림차순할 때Student 클래스 내의 여러 멤버변수 중 특정 변수를 오름차순(내림차순)할 때Java에서 제공되는 정렬이 가능한 모든 클래스는 Compa
정적 팩터리 메서드와 public 생성자는 각자 쓰임새가 있으니 상대적인 장단점을 이해하고 사용하는 것이 좋다. 그렇다고 하더라도 정적 팩터리를 사용하는 게 유리한 경우가 더 많으므로 무작정 public 생성자를 제공하던 습관이 있다면 고치자.클래스 인스턴스 생성을 생
핵심 정리생성자나 정적 팩터리가 처리해야 할 매개변수가 많다면 빌더 패턴을 선택하는 게 더 낫다. 매개변수 중 다수가 필수가 아니거나 같은 타입이면 특히 더 그렇다. 빌더는 점층적 생성자보다 클라이언트 코드를 읽고 쓰기가 훨씬 간결하고, 자바빈즈보다 훨씬 안전하다.빌더
값을 호출하는 것을 의미한다.전달 받은 값을 복사하여 처리한다.전달 받은 값을 변경하여도 원본은 변경되지 않는다.참조에 의한 호출을 의미한다.전달 받은 값을 직접 참조한다.전달 받은 값을 변경할 경우 원본도 변경된다.우리는 Java에서 객체를 전달받고 그 객체를 수정하