반응형
해당 페이지에서는 자주 사용하는 개발 패턴으로 배열을 리스트로 변환하거나 리스트를 배열로 변환하는 방법에 대해서 공유합니다.
1) 배열(Array)을 리스트(ArrayList)로 변환 : Array to ArrayList
💡 배열(Array)를 배열 리스트(ArrayList)로 변환하는 방법에 대해서 공유합니다.
1. Arrays 함수를 이용한 변환 방법 : Arrays.asList()
import java.util.*;
// 1. Array Initialize
String[] strArr = {"one", "two", "three"};
// 1.1. [배열 -> 컬렉션 함수] 배열 리스트(ArrayList) 선언 및 초기화합니다.
List<String> strArrList = Arrays.asList(strArr); // ArrayList : ["one", "two", "three"]
// 1.2. [배열 -> 컬렉션 함수] 배열 리스트(ArrayList) 선언 및 초기화합니다.
List<String> strArrList = new ArrayList<>(Arrays.asList(strArr)); // ArrayList : ["one", "two", "three"]
2. 반복문을 이용한 변환 방법 : for ~ each
import java.util.*;
String[] strArr = {"one", "two", "three"};
List<String> strArrList = new ArrayList<>();
for (String s : strArr)
strArrList.add(s); // ArrayList : ["one", "two", "three"]
3. Stream API를 이용한 변환 방법 : Arrays().stream().collect()
import java.util.*;
String[] strArr = {"one", "two", "three"};
List<String> strArrList = Arrays.stream(strArr).collect(Collectors.toList()); // ArrayList : ["one", "two", "three"]
[참고] 기본 자료형 Array to List 에러 발생 및 해결 방법 : int[] to List<Integer>
💡 정수 배열을 정수 리스트로 변환을 할때 즉시 변환이 안되는 변환 문제가 발생합니다.
💡 그렇기에 다른 자료형과 다르게 처리가 됩니다
// 1. Array Initialize
int[] intArr = {1, 2, 3, 4, 10, 45, 65, 33};
// 2. 타입 변수의 인스턴스가 없으므로 int[]이(가) Integer을(를) 준수합니다 추론 변수 T에 호환되지 않는 바운드가 있습니다. equality constraints: Integer lower bounds: int[]
List<Integer> inteArrList = Arrays.asList(intArr);
1. for문을 이용하여 값 구성 방법
// 1. Array Initialize
int[] intArr = {1, 2, 3, 4, 10, 45, 65, 33};
// 2. ArrayList Initialize
List<Integer> intArrList = new ArrayList<>();
// 3. Array to ArrayList
for (int intItem : intArr) {
intArrList.add(intItem);
}
2. Steam API를 이용하여 값 구성방법
// 1. Array Initialize
int[] intArr = {1, 2, 3, 4, 10, 45, 65, 33};
// 2. ArrayList Initialize
List<Integer> intArrList = new ArrayList<>();
// 3. Array to ArrayList
intArrList = Arrays.stream(intArr).boxed().collect(Collectors.toList());
[참고] 기본 자료형을 래퍼 클래스로 Boxing 관련 참고 링크
2) 리스트(ArrayList)를 배열(Array)로 변환
💡 리스트(ArrayList)를 배열로 변환하는 방법에 대해서 공유합니다.
1. List 함수를 이용한 변환 방법: List.toArray()
String[] resultArr;
List<String> strArrList = Arrays.asList("one", "two", "three");
// 1. [컬렉션 함수 -> 배열] 배열의 사이즈를 지정하고 값을 넣어줍니다.
resultArr = strArrList.toArray(new String[strArrList.size()]); // String[] : ["one", "two", "three"]
2. 반복문을 이용한 변환 방법 : for문
String[] resultArr;
List<String> strArrList = new ArrayList<>(Arrays.asList("one", "two", "three"));
// 1. Array Size Initialize
resultArr = new String[strArrList.size()];
// 2. [컬렉션 함수 -> 배열] for문으로 배열의 값을 넣어줍니다.
for (int j = 0; j < strArrList.size(); j++) {
resultArr[j] = strArrList.get(j); // String[] : ["one", "two", "three"]
}
3. ArrayList<Integer>를 int[]로 변환방법
💡 해당 방법에서는 List -> Integer[] -> int[]로 변환을 하는 과정입니다.
// [STEP1] 리스트 구성
List<Integer> integerList = Arrays.asList(93, 30, 55);
// [STEP2] List<Integer> to Integer[]로 변환
Integer[] integerArr = answerList.toArray(new Integer[answer.length]);
// [STEP3] Integer[] to int[]로 변환: 언박싱
int[] resultArr = Arrays.stream(integerArr).mapToInt(Integer::intValue).toArray()
오늘도 감사합니다. 😀
반응형
'Java > Short 개발' 카테고리의 다른 글
[Java/Short] String <-> int 변환 방법 : 부호(+, -) 포함 여부 (0) | 2023.02.26 |
---|---|
[Java/Short] Array, ArrayList 정렬(Sort) 방법 (0) | 2023.02.22 |
[Java/Short] 기본 자료형과 래퍼 클래스의 박싱(Boxing)과 언박싱(Unboxing) 방법 (0) | 2023.02.21 |
[Java/Short] N진법 <-> 정수(10진법) 변환 방법: + N진법간 합 방법 (0) | 2023.02.21 |
[Java/Short] String <-> ASCII Code 변환 방법 (0) | 2023.02.21 |