/ ALGORITHM

Array와 ArrayList

Algorithm 관련 포스팅

이 글은 알고리즘 문제를 풀면서 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]