[JAVA] 배열 뒤집기

Created by
  • 무둥
Created at
Category
  1. JAVA
Status
도움을 받다
정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.

◇ 내 답변

import java.util.*; class Solution { public int[] solution(int[] num_list) { int[] answer = {}; ArrayList<Integer> list = new ArrayList<>(); for(int i : num_list){ list.add(i); } Collections.reverse(list); answer = list.stream().mapToInt(i -> i).toArray(); return answer; } }
아 JS면 해결하고도 남는데 ... 이런 말 하지 마까
이건 다른 사람 코드 참고한 거다. 모르는 개념이 많아서 지금부터 공부해야 함
ArrayList<Integer> OO = new ArrayList<>();
list 인터페이스를 상속받은 클래스. 크기가 가변적으로 변하는 선형리스트. 인덱스로 내부의 객체를 관리함.
이건 선언문. new 다음 <>에는 타입을 지정하는 모양이지만 생략 가능.
for(int i : num_list){ list.add(i); } Collections.reverse(list);
for문은 대충 됐고... list.add()를 통해 list에 값을 집어넣을 수 있나보다.
Collections.reverse(list); 를 통해 list에 들어있는 값을 반전시키기.
왜 콜렉션이라는게 들어가나 싶었는데 1번 라인의 자바 유틸 임포트에서 와일드문자를 사용함으로 콜렉션까지 들어와야 했던 것 같다. 어쩐지 Arrays만 하니까 오류 나더라... 여기 있는 값 다 쓰려면
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List;
이거 다 임포트해줘야함. 그러느니 걍 임포트 * 하지
answer = list.stream().mapToInt(i -> i).toArray();
list를 배열로 형변환해주기.
stream()이란 함수형 연산을 통해 데이터를 가공하기 위한 클래스의 집합체라고 함.
그 안에 mapToInt가 있음. mapToInt는 stream의 각 요소를 int로 변환하는 작업을 한다.
마지막으로 toArray() 메소드로 다시 배열화 시키기. 당연하게도 list에서 사용 가능.
인데 stream과 mapToInt는 지금 내가 이해하기 너무 빡센 개념 같다... 일단 한번 훑어보기만 하고 넘어가는 걸로 하자... 아 JS였으면... 중얼중얼