전체 글
Array.sort(), Collection.sort(), Comparable, Comparator 사용법
Array.sort() 배열 내에 Primitive Type을 정렬하기 위해 사용한다. 기본 정렬은 오름차순이다. String arr[] = {"a", "c", "b", "e", "d"}; Arrays.sort(arr); for(String i : arr) { System.out.print("[" + i + "]"); } System.out.println(); Arrays.sort(arr, Collections.reverseOrder()); //내림차순 for(String i : arr) { System.out.print("[" + i + "]"); } //[a][b][c][d][e] //[e][d][c][b][a] Comparable과 Comparator( Collection.sort() ) Compa..
해시 알고리즘(Hash Algorithm)과 시간 복잡도(Time Complexity)
기초 알고리즘: 해시 알고리즘 해시 알고리즘은 기초 알고리즘 중 하나지만, 다른 알고리즘과는 달리 효율성을 극대화하는 데 중점을 둡니다. 특히 해시 알고리즘을 사용하면 데이터 검색 속도를 크게 향상시킬 수 있습니다. 대표적인 예로 백준의 "수 찾기" 문제를 살펴보겠습니다.[1,4,5,2,3]위와 같은 배열이 주어진 상태에서[1,4,3,7,9]위의 5개 요소가 첫번째 배열 요소에 포함되어있는지 검사하는 문제입니다. 단순히 생각할 때 for문을 2개 써서 각각의 요소를 모두 검사를 하면 되는데, 그렇게 되면 5x5 = 25번을 검색하는 비효율적임이 발생합니다. 시간 복잡도(Time Complexity)1. O(1) - 1등int[] array = {1, 2, 3, 4, 5};int element = arra..
Java 문자열 메소드 속도 효율 및 차이
보통 문자열을 비교할 때는 Equals를 이용한다. 그래서 Equals를 활용한 문자열 비교를 많이 하게 되는데 여기서 일어나는 문제점을 알아보고자 한다. long start, end; //경과 시간 체크를 위한 변수 String[] names = new String[6500000]; for(int i=0; i
Java 8 Stream 사용법
Stream 쓰는 이유 보통 자바에서 자료구조를 다룰 때 for를 이용해 반복문을 사용하지만 로직이 복잡할수록 코드가 과도하게 길어지는데 Stream을 이용하면 가독성을 살리면서 코드양을 획기적으로 줄일 수 있음. Stream 생성 자료구조 형(배열, 리스트, 맵 등)마다 Stream으로 바꿔서 사용이 가능하다. String[] strs = {"a", "b", "c"}; Stream stream = Arrays.stream(strs); Stream stream2 = Arrays.stream(arr, 1, 3); // b, c List list = Arrays.asList("a", "b", "c"); Stream stream = list.stream(); Stream parallelStream = list..