Java
ArrayList를 Array로 바꾸기
- toArray()
List<Integer> list = new ArrayList<>();
// ...
Object[] arr = list.toArray();
- Object 타입의 배열을 반환하므로 활용이 번거롭다.
- toArray(T[] a)
List<Integer> list = new ArrayList<>();
// ...
Integer[] arr = list.toArray(new Integer[0]);
- T 타입 배열을 반환한다.
- 원시 타입 (int, double, float)이 아니기 때문에 값 타입 배열은 얻을 수 없다.
- 파라미터 a의 길이는 0으로 지정하면 알아서 list의 길이에 맞게 조정되어 저장된다.
- Stream
List<Integer> list = new ArrayList<>();
// ...
int[] arr = list.stream()
.mapToInt(Integer::intValue)
.toArray();
- list.stream() : Stream<Integer> 반환.
- mapToInt(Integer::intValue) : Integer의 intValue() 메서드를 참조해 값 타입인 int로 언박싱.
- toArray() : IntStream의 원소를 배열로 반환.
Array를 ArrayList로 바꾸기
- Arrays.asList(T[] a)
String[] arr = {"a", "b", "c", "d"};
List<String> list = Arrays.asList(arr);
- T가 원시 타입이 아닌 경우 사용 가능
- Stream
int[] arr = {1, 2, 3};
List<Integer> list = Arrays.stream()
.boxed()
.collect(Collectors.toList());
- boxed() : int를 Integer로 박싱
- collect()를 호출해 List로 변환
SQL
https://school.programmers.co.kr/learn/courses/30/lessons/131123#qna
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[문제]
REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.
[시도(오답)]
SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES)
FROM REST_INFO
GROUP BY FOOD_TYPE
ORDER BY 1 DESC
[정답]
SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM REST_INFO
WHERE FAVORITES IN
(SELECT MAX(FAVORITES)
FROM REST_INFO
GROUP BY FOOD_TYPE)
GROUP BY FOOD_TYPE
ORDER BY 1 DESC
GROUP BY로 묶인 컬럼이 SELECT절로 뽑힐 때 가장 상단에 있는 데이터들이 임의로 가져와지게 된다.
여기서는 GROUP BY FOOD_TYPE 으로 묶였으니 한식의 맨 첫 번째, 일식의 맨 첫 번째...를 가져오므로, 이는 문제에서 요구하는 FAVORITES가 가장 많은 값들이 아니게 된다.
MAX(FAVORITES)를 SELECT하게 되면 각 음식 종류 별 가장 많은 즐겨찾기 수를 반환하게 되는데, 이건 가장 많은 즐겨찾기를 갖고 있는 데이터 ROW 전체를 가져오는게 아닌 해당 값만 가져오므로 올바른 정답이 아니다.
따라서 음식점 종류 별 가장 큰 FAVORITES 값들을 뽑되, 해당 MAX FAVORITES 값과 일치하는 FAVORITES 레코드들을 WHERE 절로 검색하여 가져온 후 보여주면 정답이 된다.
[참고 자료]
https://velog.io/@jwkim/java-arraylist-array-type-conversion
[Java] ArrayList ↔ Array 변환
[Java] ArrayList와 Array 변환
velog.io
https://school.programmers.co.kr/questions/38854
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'내배캠 > TIL' 카테고리의 다른 글
DTO, DAO, VO (0) | 2024.08.08 |
---|---|
Git .gitignore 적용하기 (0) | 2024.08.07 |
Stateless (0) | 2024.08.06 |
Java 날짜 함수 (4) | 2024.08.05 |
24. 08. 03 (0) | 2024.08.04 |