코딩 테스트/Java

HashSet의 특징HashSet은 중복을 빠르게 체크할 수 있는 자료구조이다.기존의 List에서 중복여부를 체크하려면 List의 모든 요소를 순회하며 해당 값이 있는지 체크(O(n))해야 했지만HashSet은 그러한 과정을 O(1)로 해결한다. 하지만 HashSet의 타입이 Integer나 String이 아닌 사용자가 정의한 객체라면 어떻게 될까?이때는 중복을 속성의 값으로 체크하는 것이 아닌 객체의 참조값으로 체크를 한다.속성의 값으로 중복을 체크하고 싶다면 어떻게 해야할까? 객체의 속성으로 중복 체크해당 클래스에서 equals()메서드와 hashCode()메서드를 오버라이드 해주면 된다.public class Person { private String name; private int ag..
기본 타입(Primitive)의 배열int, double, float등 기본 타입의 배열을 정렬하기 위한 방법은 다음과 같다. 오름차순int[] arr = new int[]{9, 8, 2, 10, 4};Arrays.sort(arr); 내림차순내림차순의 경우 복잡해진다.1. stream을 사용하는 방법int[] arr = {5, 3, 8, 1, 9, 2};// int[] 배열을 Integer[] 배열로 변환Integer[] integerArray = Arrays.stream(arr).boxed().toArray(Integer[]::new);// 배열을 내림차순으로 정렬Arrays.sort(integerArray, Collections.reverseOrder());stream을 통해 객체 타입의 배열로 변환..
배열 복사1차원 배열1. System.arraycopy 사용배열을 빠르게 복사하는 데 사용int[] original = {1, 2, 3, 4, 5};int[] copy = new int[original.length];System.arraycopy(original, 0, copy, 0, original.length);파라미터 1. original (원본 배열의 현재 행): 2차원 배열 original의 i번째 행. 각 행은 1차원 배열로 취급. 2. 0 (원본 배열에서의 시작 위치): 복사를 시작할 원본 배열의 인덱스. 여기서는 각 행의 처음부터 복사를 시작하므로 0. 3. copy (목적지 배열의 현재 행): 2차원 배열 copy의 i번째 행. 복사된 데이터를 저장할 대상 배열의 행. 4. 0 (목적지 ..
Intro 코딩테스트에서 문자열을 변경하는 연산이 많을 때 흔히 StringBuilder를 사용한다. 성능상에 이점이 있어 그렇다고 하는데 구체적으로 왜 이점이 발생하는지 알아보고자 한다. String vs StringBuilder String은 이뮤터블 객체(Immutable Object)이다. 즉, 객체의 값을 변경할 수 없고 값을 변경하게 되면 다른 객체가 생성된다. 반면 StringBuilder는 뮤터블 객체(Mutable Object)이다. 즉, 객체의 값을 변경해도 기존 객체가 유지된다. 바로 이점이 성능의 차이를 발생시키는 것이다. 객체에 hello를 할당 한 뒤, 이후에 world를 추가한다고 했을 때: 1) String String s = "hello"; System.out.println..
jaehee1113
'코딩 테스트/Java' 카테고리의 글 목록