Array와 ArrayList
Algorithm 관련 포스팅
- 최빈값 구하기
- k의 개수 구하기
- String
- 문자열 정렬하기
- 인덱스 바꾸기
- 제곱수 판별하기
- Math
- 배열 회전시키기
- A로 B 만들기
- 잘라서 배열로 저장하기
- Array와 ArrayList
- 저주의 숫자 3
이 글은 알고리즘 문제를 풀면서 Array, ArrayList와 관련한 메서드를 정리한 것입니다.
1. Int Array → Integer ArrayList
(1) Arrays.stream()
사용
// 배열 생성
int[] arr = {3, 7, 9};
// ArrayList로 변경
List<Integer> list = Arrays.stream(arr)
.boxed()
.collect(Collectors.toList());
// class 출력
System.out.println("class = " + list.getClass());
// ArrayList 출
System.out.println("list = " + list);
-
result
class = class java.util.ArrayList list = [3, 7, 9]
(2) for loop
사용
// 배열 생성
int[] arr = {109, 1, 8, 4};
// ArrayList로 변경
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
list.add(arr[i]);
}
// class 출력
System.out.println("class = " + list.getClass());
// ArrayList 출
System.out.println("list = " + list);
-
result
class = class java.util.ArrayList list = [109, 1, 8, 4]
2. Integer ArrayList → Int Array
// ArrayList 생성
ArrayList<Integer> arrayList = new ArrayList<>();
// 값 추가
list.add(new Integer(1));
list.add(new Integer(3));
list.add(new Integer(4));
// array로 변경
int[] array = arrayList.stream()
.mapToInt(x -> x)
.toArray();
// 또는
int[] array = arrayList.stream()
.mapToInt(Integer::intValue)
.toArray();
// class 출력
System.out.println("class = " + array.getClass());
// array 출력
System.out.println("array = " + Arrays.toString(array));
-
result
class = class [I array = [1, 3, 4]
3. String ArrayList → String Array
(1) toArray()
사용
// ArrayList 생성
ArrayList<String> list = new ArrayList<>();
// 값 추가
list.add(new String("deer"));
list.add(new String("fox"));
list.add(new String("ostrich"));
list.add(new String("turtle"));
// array로 변경
String[] array = list.toArray(new String[0]);
// class 출력
System.out.println("class = " + array.getClass());
// array 출력
System.out.println("array = " + Arrays.toString(array));
-
result
class = class [Ljava.lang.String; array = [deer, fox, ostrich, turtle]
(2) stream().toArray
사용
// ArrayList 생성
ArrayList<String> list = new ArrayList<>();
// 값 추가
list.add(new String("kangaroo"));
list.add(new String("raccoon"));
list.add(new String("monkey"));
// array로 변경
String[] array = list.stream().toArray(String[]::new);
// class 출력
System.out.println("class = " + array.getClass());
// array 출력
System.out.println("array = " + Arrays.toString(array));
-
result
class = class [Ljava.lang.String; array = [kangaroo, raccoon, monkey]
4. String Array → String ArrayList
(1) Arrays.asList()
사용
// array 생성
String[] arr = {"desk", "elephant", "fruit"};
// ArrayList로 변경
List<String> list = Arrays.asList(arr);
// class 출력
System.out.println("class = " + list.getClass());
// ArrayList 출력
System.out.println("list = " + list);
-
result
class = class java.util.Arrays$ArrayList list = [desk, elephant, fruit]
(2) Collections.addAll()
사용
// array 생성
String[] arr = {"peony", "eucalyptus", "clover"};
// ArrayList로 변경
List<String> list = new ArrayList<>();
Collections.addAll(list, arr);
// class 출력
System.out.println("class = " + list.getClass());
// ArrayList 출력
System.out.println("list = " + list);
-
result
class = class java.util.ArrayList list = [peony, eucalyptus, clover]
(3) Stream.of()
사용
// array 생성
String[] arr = {"giraffe", "hippo", "leopard"};
// ArrayList로 변경
List<String> list = Stream.of(arr).collect(Collectors.toList());
// 또는
List<String> list = Stream.of(arr).collect(Collectors.toCollection(ArrayList::new));
// class 출력
System.out.println("class = " + list.getClass());
// ArrayList 출력
System.out.println("list = " + list);
-
result
class = class java.util.ArrayList list = [giraffe, hippo, leopard]
(4) List.of()
사용
// array 생성
String[] str = {"lily", "iris"};
// ArrayList로 변경
List<String> list = new ArrayList<>(List.of(str));
// ArrayList 출력
System.out.println("list = " + list);
-
result
class = class java.util.ArrayList list = [lily, iris]