java (6) 썸네일형 리스트형 Java Arrays.sort(), Collection.sort() 정렬 알고리즘 Java 에서 기본 배열 정렬 Arrays.sort() 는 Dual-Pivot Quicksort 알고리즘 즉 pivot 두 개를 사용해 배열을 세 구역으로 나누어 퀵정렬의 성능을 개선한 알고리즘을 사용하고 있습니다. Collections.sort() 는 TimSort 알고리즘 즉 실제 데이터에서 효율적인 Merge Sort와 Insertion Sort의 하이브리드 알고리즘을 사용하고 있습니다. 먼저 각 sort 방식에 대한 시간 복잡도를 따져보겠습니다. 1. Bubble Sort, Insertion Sort: O(n²) (느린 알고리즘)이들 알고리즘은 배열 내에서 모든 요소를 비교하고 자리를 교환하는 방식으로 작동합니다.Bubble Sort:배열의 각 요소를 차례대로 비교하면서, 더 큰 값이.. Java 시간 유형에 대한 고민 개요 채팅방에 24 시간 내에 입장 기록이 있으면 (redis 캐시에 해당 key 값이 있는지 여부) 사용자에게 주어지는 질문 리스트의 알고리즘을 달리 해야 하는 로직에서 사용된 isWithin24Hours 메소드 입니다. 저는 현재System.currentTimeMillis() 를 사용하고 있지만 LocalDateTime.now().minusDays(1) LocalDateTime 은 minusDays 로 측정 가능하기 때문에 Java 날짜 시간 유형에 각각 어떤 차이가 있는지 어떤 class 를 사용하는 것이 적합할지 궁금해졌습니다. 타임존이란?타임존은 동일한 로컬 시간을 따르는 지역을 의미하며, 주로 해당 국가에 의해 법적으로 지정된다. 보통 국가별로 각자의 고유한 타임존을 사용하고 있으며, 미국이.. HashMap 의 동작 원리 [ Hashmap Java 기본 동작 원리 ] Java의 HashMap은 매핑을 저장하기 위해 내부 클래스 Node를 사용하고 해싱 알고리즘에서 작동하며 get 및 put 작업을 위해 키에 hashCode() 및 equals() 메서드를 사용한다. HashMap은 단일 연결 리스트를 사용하여 요소를 저장하며 이를 bin 또는 bucket 이라고 한다. put 메소드를 호출하면 키의 hashCode를 사용하여 매핑을 저장하는 데 사용할 bucket 을 결정하고 bucket 이 식별되면 hashCode 를 사용하여 동일한 hashCode를 가진 키가 이미 있는지 확인한다. 동일한 hashCode를 가진 기존 키가 있는 경우 해당 키에 대해 equals() 메서드가 사용되어 true를 반환하면 값을 덮어.. method class instance object method 반복문, 조건문, 변수, 상수 method function 함수 public static void main(String[] args) { // 실행되기를 기대하는 코드, main이라는 메소드 } method 정의와 호출 (define, call) public static void main(String[] args) { // 메소드 numbering이 리턴한 값이 변수result에 담긴다. String result = numbering(1, 5); // 변수 result의 값을 화면에 출력한다. System.out.println(result); public static String[] getMembers() { String[] members = {"최진혁", "최유빈", "한아람" }; ret.. 생성자 내부클래스 public class Calculator Demo1 { public static void main(String[] args) { Calculator c1 = new Calculator(10, 20); c1.sum(); c1.avg(); Calculator c2 = new Calculator(20, 40); c2.sum(); c2.avg(); } } 여기서 생성자는 new 뒤에 Calcuator 이다. 생성자에 가로로 인자를 주고 있는 (10, 20)은 생성자라는 것을 더 명확하게 해주는 것~! 인스턴스를 생성하는 자 = 생성자 생성자는 return 타입 없다. this vs this()이 코드에서 this.modelName = modelName 대신 modelName = modelName 이라고 작성되.. Linked List vs Array List 순차적인 추가 - ArrayList : 550.41ms 순차적인 추가 - LinkedList : 1828.78ms -------------------------------------------------- -------------------------------------------------- 순차적인 삭제 - ArrayList : 39.98ms 순차적인 삭제 - LinkedList : 98.39ms -------------------------------------------------- -------------------------------------------------- 중간 데이터 삭제 - ArrayList : 9.68ms 중간 데이터 삭제 - LinkedList : 0.1ms -------.. 이전 1 다음