본문 바로가기

분류 전체보기61

박싱(Boxing) & 언박싱(UnBoxing) 위에서 래퍼 클래스는 값을 포장하여 객체로 만드는 것이라고 했다. 값을 포장하여 객체로 만드는 것 까지는 좋지만, 만일 값을 더하거나 등 변환시켜야 할 필요가 생길 경우 포장을 다시 뜯을 필요가 있다. 이러한 행위를 전문적인 용어로 말하자면, 박싱(Boxing) 과 언박싱(UnBoxing) 이라고 한다. Boxing : 기본 타입의 데이터 → 래퍼 클래스의 인스턴스로 변환 UnBoxing : 래퍼 클래스의 인스턴스에 저장된 값 → 기본 타입의 데이터로 변환 더 자세한 내용은 아래 사이트를 참고하자 https://inpa.tistory.com/entry/JAVA-☕-wrapper-class-Boxing-UnBoxing [Inpa Dev 👨‍💻:티스토리] 아래 코드를 살펴보자. import java.util.. 2024. 2. 22.
[Java 8] Stream의 collect() collect() collector는 Collector 인터페이스를 구현한 것이고, 직접 구현할 수도 있지만, 미리 작성된 것을 사용하기도 한다. Collectors 클래스는 미리 작성된 다양한 collector를 반환하는 static 메서드를 가지고 있다. 구현된 collector를 collect() 메서드의 인자로 넣어 사용한다. collect() 스트림의 최종연산, 매개변수로 컬렉터를 필요로 한다. Collector 인터페이스로 컬렉터는 이를 구현해야 한다. Collectors 클래스로 static 메서드로 미리 구현한 컬렉터를 제공한다. Collectors를 통해 어떤 형태로 변경할 수 있는지에 대해서 알아보자. List givenList = Arrays.asList("a", "bb", "cc",.. 2024. 2. 22.
PriorityQueue란? 자바 PriorityQueue(우선순위 큐)는 자바의 Queue 인터페이스의 구현 클래스입니다. 일반적인 Queue(큐)의 FIFO(First-In-First-Out)를 따르지만 우선 순위에 따라 요소를 정렬하여 우선 순위가 가장 높은 요소 먼저 처리되도록 합니다. 자바 PriorityQueue는 보통 Heap을 이용하여 구현합니다. 데이터를 삽입할 때 우선순위를 기준으로 Max Heap(최대 힙) 혹은 Min Heap(최소 힙)을 구성하고 데이터를 꺼내거나 삭제할 때는 적절한 자리를 찾아 옮기는 방식으로 진행됩니다. Max Heap(최대 힙) : 최대 값이 우선순위인 큐 Min Heap(최소 힙) : 최소 값이 우선순위인 큐 특징 높은 우선순위의 데이터를 먼저 꺼내서 처리합니다. 배열과 달리 크기가 고.. 2024. 2. 21.
[PriorityQueue] 효율적인 스케줄링 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제에서의 팁) 1. 위 문제는 이전 타임의 퇴실시각과 다음 타임의 입실시각을 비교해야 하는 문제로, 입실시각을 기준으로 오름차순 정렬한 배열 & 퇴실시각을 기준으로 오름차순 정렬한 배열 두가지의 배열이 필요하다. import java.util.PriorityQueue; import java.util.Arrays; import java.util.Comparator; class Solution.. 2024. 2. 21.
페치조인(Fetch Join) 참고 https://kihwan95.tistory.com/12 페치조인(fetch Join )이란 페치(fetch)조인은 SQL에서 사용하는 조인의 종류는 아니고 JPQL에서 성능 최적화를 위해 제공하는 기능입니다. 이것은 연관된 엔티티나 컬렉션을 한 번에 같이 조회하는 기능인데 join fetch 명령어 kihwan95.tistory.com 페치 조인 (Fetch Join)은 SQL에서 사용하는 조인의 종류는 아니고 JPQL에서 성능 최적화를 위해 제공하는 기능입니다. 이것은 연관된 엔티티나 컬렉션을 한 번에 같이 조회하는 기능인데 join fetch 명령어로 사용할 수 있습니다. JPQL은 결과를 반환할 때 연관관계까지 고려하지 않는다. 단지 SELECT 절에 지정한 엔티티만 조회할 뿐이다 따라서 M.. 2024. 2. 20.
Comparator, Lamda 사용하여 2차원 배열 정렬하기 2차원 배열을 바로 Arrray.sort()를 통해 정렬하려고 하면 java.lang.ClassCastException: I cannot be cast to java.lang.Comparable 오류가 발생합니다. 원인은 비교 기준이 구현되어 있지 않기 때문에 캐스팅에 실패했기 때문이라 아래와 같이 Comparable,Comparator 인터페이스를 구현하여 정렬기준을 추가해 줘야 합니다. 2차원배열 뿐만 아니라 객체비교할 때도 동일한 유사하니 참고해주세요. 1. Comparator 익명 클래스 구현 int[][] arr = new int[][]{{5,40},{3,50},{1,30},{4,20},{2,10}}; // 1. Comparator 익명 클래스 구현 Arrays.sort(arr, new Comp.. 2024. 2. 20.