본문 바로가기

전체 글61

HashMap 사용법 (개념, 특징, 메소드) 1. HashMap 이란? HashMap은 데이터를 저장할 때 키(Key)와 밸류(Value)가 짝을 이루어 저장됩니다. 데이터를 저장할 때는 키(Key) 값으로 해시함수를 실행한 결과를 통해 저장위치를 결정합니다. 따라서 HashMap은 특정 데이터의 저장위치를 해시함수를 통해 바로 알 수 있기 때문에 데이터의 추가, 삭제, 특히 검색이 빠르다는 장점이 있습니다. 이러한 이유로 HashMap은 키(Key)값을 통해서만 검색이 가능하며, HashMap의 키(Key) 값은 중복될 수 없고, 밸류(Value) 값은 키(Key) 값이 다르다면 중복이 가능합니다. 2. HashMap 선언 HashMap h1 = new HashMap( ); 3. HashMap 메서드 V : 컬렉션ex) V put -> 컬렉션명... 2024. 2. 16.
Iterator란? Iterator 사용하는 이유 & 사용법 Iterator란? - iterator는 ArrayList, HashSet과 같은 컬렉션을 반복하는 데 사용할 수 있는 객체다. - Vector, ArrayList, LinkedList가 상속받는 인터페이스이다 - iterator( )를 호출하면 Iterator 객체 반환 - 자바의 컬렉션에 저장되어 있는 요소들을 읽어오는 방법의 인터페이스이다. - 순서가 있는 List 인터페이스의 경우는 Iterator를 사용하지 않고 get( ) 메소드 활용 가능. - Set 인터페이스의 경우 get( ) 메소드가 제공되지 않으므로 Iterator를 활용하여 객체를 순회함 근데, 컬렉션을 반복하고 그 안의 데이터에 접근하기 위해서라면 for, while 같은 반복문을 써서도 충분히 가능하다. 그렇다면 iterator.. 2024. 2. 16.
Arrays.sort( ) - String 타입 / Integer 타입 Arrays.sort( ) 1. String 타입의 정수배열을 sort()로 정렬하면 "숫자문자열"의 첫번째 index의 "숫자문자"에 따라 정렬된다. ex) String array[] = {"3","1117","213","543","12345678"} Arrays.sort(array); // ["1117","12345678","213","3","543"] Arrays.sort(arr,(a,b)->a.compareTo(b)) // 오름차순 : ["1117","12345678","213","3","543"] Arrays.sort(arr,(a,b)->b.compareTo(a)) // 내림차순 : ["543","3","213","12345678","1117"] Arrays.sort(arr,(a,b) -> a-.. 2024. 2. 15.
1+N 문제의 모든것 개요 JPQL과 Querydsl을 공부하면서 1+N 문제에 대해서 한번쯤은 들어봤을 것이라고 생각한다. 그럼 제일 많은 답변은 "연관관계를 EAGER가 아닌 LAZY로 설정하라!" 이였다. 하지만 이 말만 듣고 "1+N문제 해결" == "연관관계를 LAZY로 설정" 으로 알고 있는 사람들이 많았고 나도 그중 하나였다. 그래서 이에 대한 개념을 바로잡고자 한다. 들어가기에 앞서, N+1 문제란? 연관 관계에서 발생하는 이슈로 연관 관계가 설정된 엔티티를 조회할 경우에 조회된 데이터 갯수(n) 만큼 연관관계의 조회 쿼리가 추가로 발생하여 데이터를 읽어오게 된다. 이를 N+1 문제라고 한다. @Entity @Getter @RequiredArgsConstructor(access = AccessLevel.PROT.. 2024. 2. 13.
중복을 저장하지 않는 배열-HashSet 배열을 만들 때 연산 결과, 중복된 정수가 나오는 경우 : 중복을 허용하지 않는 HashSet 사용 HashSet 이란? Set 인터페이스에서 지원하는 구현 클래스. HashSet의 특징 1. 순서대로 입력되지 않고, 일정하게 유지되지 않음 2. null 요소 허용 3. 중복 허용 X 중복을 걸러내는 과정 HashSet은 객체를 저장하기 전에 먼저 객체의 hashCode()메소드를 호출해서 해시 코드를 얻어낸 다음 저장되어 있는 객체들의 해시 코드와 비교한 뒤 같은 해시 코드가 있다면 다시 equals() 메소드로 두 객체를 비교해서 true가 나오면 동일한 객체로 판단하고 중복 저장을 하지 않습니다. 문자열을 HashSet에 저장할 경우, 같은 문자열을 갖는 String객체는 동일한 객체로 간주되고 다.. 2024. 2. 13.
배열(Arrays)의 효율적인 사용 https://school.programmers.co.kr/learn/courses/30/lessons/42746 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정.. 2024. 2. 7.