정렬 알고리즘을 배우며 병합 정렬, 퀵 정렬 등 다양한 종류의 알고리즘에 대해 배웠습니다. 그렇다면 자바에서 자주 사용하는 Arrays.sort() 는 어떤 알고리즘으로 구현되어있는지 궁금해졌습니다. 구글링과 자바 내부코드를 보면, Arrays.sort는 듀얼 피봇 퀵소트를 사용한다라고 나와있습니다. Arrays.sort 메서드 내부를 들여다보면서, 듀얼 피봇 퀵소트란 무엇인지 그리고 범위에 따라 어떤 정렬 방식을 적용하는지를 알 수 있었습니다. Arrays.sort() 내부 들여다보기int[] arr = {1, 3, 4, 2, 1 ,7};Arrays.sort(arr)---result: {1, 1, 2, 3, 4 ,7} 보통 자바에서 배열을 정렬할 때, java.util.Arrays 클래스의 so..
자바
지난 포스팅에서 자바 제너릭의 도입 배경과 기능을 살펴보았습니다. 이번 포스팅에서는 제너릭의 중요한 특징인 PECS에 대해 살펴보겠습니다. PECS PECS(Producer Extends Consumer Super)란, Producer(데이터 생산: 조회) Component에서는 extends 를 사용하고 Consumer (데이터 소비: 저장, 수정 등) Component 에서는 super를 사용한다는 의미입니다. 불공변이란? 이것을 보다 자세히 이해하기 위해서는 제너릭의 불공변이라는 특징을 알아야만 합니다. 불공변이란, 서로 다른 제너릭 타입 간에는 상하위 관계가 없다는 것입니다. public class Vehicle {}//Car 클래스public class Car extends Vehicle {..