Java에서 ArrayList 복사

Rupam Yadav 2023년10월12일
  1. ArrayList를 다른 ArrayList의 생성자에 전달하여 다른 ArrayList에 복사
  2. addAll()기능을 사용하여 ArrayList를 다른 곳에 복사
  3. Java 8 Stream을 사용하여 ArrayList 복사
  4. clone()메서드를 사용하여 ArrayList를 다른 곳에 복사
Java에서 ArrayList 복사

이 기사에서는 ArrayList를 Java의 다른 ArrayList에 복사하는 네 가지 방법을 소개합니다. 모든 예제에서 동일한 요소를 사용하여 다른 메서드를 사용하여 ArrayList를 복사합니다.

ArrayList를 다른 ArrayList의 생성자에 전달하여 다른 ArrayList에 복사

Java의 ArrayList는 세 가지 유형의 생성자를 가질 수 있습니다. 초기 크기의 빈 생성자를 사용하여 ArrayList 객체를 만들거나 컬렉션의 요소를 사용하여 ArrayList가 생성되는 컬렉션을 만들 수 있습니다.

세 번째 유형의 생성자를 사용합니다. 먼저 빈 생성자로 ArrayList names1을 만든 다음 임의의 이름을 추가합니다. 새로운 ArrayList names2를 만들어 names1의 요소를 복사하고 names1을 생성자 new ArrayList<>(names1)에 전달합니다.

마지막으로 각 요소를 인쇄하는forEach를 사용하여 전체names2 ArrayList를 인쇄합니다.

import java.util.ArrayList;

public class CopyArrayList {
  public static void main(String[] args) {
    ArrayList<String> names1 = new ArrayList<>();
    names1.add("Alan");
    names1.add("Alex");
    names1.add("Bob");
    names1.add("Bryan");
    names1.add("Cathy");
    names1.add("Drake");

    ArrayList<String> names2 = new ArrayList<>(names1);

    names2.forEach(System.out::println);
  }
}

출력:

Alan
Alex
Bob
Bryan
Cathy
Drake

addAll()기능을 사용하여 ArrayList를 다른 곳에 복사

ArrayList에는 Collection을 인수로 사용하고 기존 요소가있는 경우 지정된 컬렉션의 요소를 ArrayList의 끝에 추가하거나 추가하는 addAll()함수가 함께 제공됩니다. ArrayList는 ArrayList names1addAll()메소드의 인수로 사용할 수있는Collection을 구현합니다.

names1에는 새로 생성 된 빈 Arraylist names2에 복사해야하는 몇 가지 요소가 있습니다. 그리고 그것은names2.addAll(names1)에 의해 이루어집니다. 출력에는names2의 복사 된 요소가 표시됩니다.

import java.util.ArrayList;

public class CopyArrayList {
  public static void main(String[] args) {
    ArrayList<String> names1 = new ArrayList<>();
    names1.add("Alan");
    names1.add("Alex");
    names1.add("Bob");
    names1.add("Bryan");
    names1.add("Cathy");
    names1.add("Drake");

    ArrayList<String> names2 = new ArrayList<>();
    names2.addAll(names1);

    names2.forEach(System.out::println);
  }
}

출력:

Alan
Alex
Bob
Bryan
Cathy
Drake

Java 8 Stream을 사용하여 ArrayList 복사

이 예에서는 Java 8에 도입 된 새로운Stream API를 사용합니다. 요소가있는 ArrayList를 만든 다음names1stream()메서드를 호출하여collect()메서드와 같은 스트림 메서드를 사용합니다. 스트림을 수집하고Collectors.toList()를 사용하여 목록으로 접습니다.

이 스트림은 ArrayList로 캐스트되어야하는 목록을 반환합니다.

import java.util.ArrayList;
import java.util.stream.Collectors;

public class CopyArrayList {
  public static void main(String[] args) {
    ArrayList<String> names1 = new ArrayList<>();
    names1.add("Alan");
    names1.add("Alex");
    names1.add("Bob");
    names1.add("Bryan");
    names1.add("Cathy");
    names1.add("Drake");

    ArrayList<String> names2 = (ArrayList<String>) names1.stream().collect(Collectors.toList());

    names2.forEach(System.out::println);
  }
}

출력:

Alan
Alex
Bob
Bryan
Cathy
Drake

clone()메서드를 사용하여 ArrayList를 다른 곳에 복사

마지막 메서드는 네이티브ArrayList 메서드 인clone()메서드입니다. 요소를 복사하고 이전 솔루션과 유사한 새 목록을 반환합니다. 요소로 ArrayList를 만들고clone()메서드를 호출합니다. 마지막으로 반환 된 결과를ArrayList<String>으로 캐스팅하여 원하는 결과를 얻습니다.

import java.util.ArrayList;

public class CopyArrayList {
  public static void main(String[] args) {
    ArrayList<String> names1 = new ArrayList<>();
    names1.add("Alan");
    names1.add("Alex");
    names1.add("Bob");
    names1.add("Bryan");
    names1.add("Cathy");
    names1.add("Drake");

    ArrayList<String> names2 = (ArrayList<String>) names1.clone();

    names2.forEach(System.out::println);
  }
}

출력:

Alan
Alex
Bob
Bryan
Cathy
Drake
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - Java ArrayList