import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
List<Integer> arrList = new ArrayList<>();
for (int a : arr) {
arrList.add(a);
}
// 배열 오름차순 정렬
Arrays.sort(arr);
//배열->리스트
arrList.remove(arrList.indexOf(arr[0]));
// list -> array
answer = arrList.stream().mapToInt(i->i).toArray();
//배열 길이가 1인 경우 -1 반환
if(answer.length == 0){
answer = new int[]{-1};
}
return answer;
}
}
int[] arr = {4,3,2,1};
//배열 -> 리스트
List<Integer> arrList = new ArrayList<>(Arrays.asList(arr));
//List<Integer> arrList = Arrays.asList(arr); 으로 하지 않는 이유는 기존 arr배열이 변하면 list도 동기화되어 값이 변한다.
System.out.println(arrList)
위의 경우 컴파일 에러가 나간다.
이유는 Arrays.asList() 는 참조형일때 사용가능 하기 때문에 arr이 int형으로 에러가 난다.
string타입의 경우는 사용가능하다.
그러므로 아래의 방식을 이용한다.
<Integer>
변환int[] arr = {4,3,2,1};
LIst<Integer> arrList = new ArrayList<>();
//배열 -> 리스트
for(int a : arr){
arrList.add(a);
}
//리스트 출력
System.out.println(arrList)
//리스트 오름차순 정렬
Collections.sort(arrList);
//리스트 내림차순 정렬
Collections.sort(arrList, Collections.reversOrder());
List<Integer> arrList = new ArrayList<>(Arrays.asList(10,20,30);
int[] arr = arrList.stream().mapToInt(i->i).toArray();
//배열 출력
System.out.println(Arrays.toString(arr));
//오름차순
Arrays.sort(arr);
//내림차순
Arrays.sort(arr, Collections.reverseOrder());