Java에서 두 목록을 결합하는 방법

Usama Imtiaz 2023년10월12일
  1. Stream을 사용하여 Java에서 두 목록 결합
  2. parameterize constructor를 사용하여 Java에서 두 목록 결합
  3. 사전 선언 된 새 배열을 사용하여 Java에서 두 목록을 결합합니다
Java에서 두 목록을 결합하는 방법

종종 어떤 절차를 시작하기 전에 여러 목록을 하나로 결합해야합니다. 두 목록을 병합하거나 더 큰 목록으로 결합하는 방법에는 여러 가지가 있습니다. 이 기사에서는 Java에서 두 목록을 병합하는 두 가지 빠른 방법을 살펴 보겠습니다.이 방법을 추가로 확장하여 목록 수에 관계없이 병합하거나 적용 할 수 있습니다. 배열 목록 또는 Java 기반 링크 목록.

여러 컬렉션을 결합하는 한 가지 방법은java.util collection 클래스의addAll()함수를 사용하여 한 목록에서 다른 목록으로 자료를 추가하는 데 도움이됩니다. addAll()함수를 사용하여 원하는만큼 목록에 콘텐츠를 할당 할 수 있으며, 여러 목록을 병합하는 가장 쉬운 방법입니다.

또한 더 나은 이해를 위해 다른 방법도 설명합니다.

  • Stream 사용
  • 매개 변수화 된 생성자사용
  • Predeclared ListaddAll()사용

Stream을 사용하여 Java에서 두 목록 결합

Java 버전 8의 스트림을 사용하면 대부분의 문제에 대해 한 줄짜리 솔루션 만 사용할 수 있으며 동시에 코드가 깔끔해 보입니다. 이상적인 결과 스트림을 생성하기 위해 파이프 라인 될 수있는 다양한 전략을 뒷받침하는 항목의 배열입니다. 아래에 언급 된 솔루션에서lst.stream()은 목록을Stream 데이터 유형으로 변환 한 다음Stream.concat(Strem1,Stream2)가 두 개의 다른Stream 객체를 연결 한 다음Stream.collect(collectors.toList)Stream 객체를 목록 객체로 변환합니다.

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

public class Abc {
  public static void main(String[] args) {
    List<String> list1, list2;
    list1 = new ArrayList<String>();
    list2 = new ArrayList<String>();
    list1.add("1");
    list1.add("2");
    list1.add("3");
    list1.add("4");
    list2.add("5");
    list2.add("6");
    list2.add("7");
    list2.add("8");
    for (int i = 0; i < list1.size(); i++) {
      System.out.print(list1.get(i) + " ");
    }
    System.out.println();
    for (int i = 0; i < list2.size(); i++) {
      System.out.print(list2.get(i) + " ");
    }

    System.out.println();
    // first Solution
    List<String> resultList1 =
        Stream.concat(list1.stream(), list2.stream()).collect(Collectors.toList());
    // first Solution Prints
    System.out.println("first Solution Prints");
    for (int i = 0; i < resultList1.size(); i++) {
      System.out.print(resultList1.get(i) + " ");
    }

    System.out.println();
  }
}

parameterize constructor를 사용하여 Java에서 두 목록 결합

List<String> newList = new ArrayList<String>(listOne);은 주어진 목록을 새 목록 객체에 복사하는 매개 변수화 생성자를 호출하여 목록을 생성 한 다음newList.addAll(listTwo);가 목록을 추가합니다 (list2)를 새로 선언 된 목록에 추가합니다.

import java.util.ArrayList;
import java.util.List;

public class Abc {
  public static void main(String[] args) {
    List<String> list1, list2;
    list1 = new ArrayList<String>();
    list2 = new ArrayList<String>();
    list1.add("1");
    list1.add("2");
    list1.add("3");
    list1.add("4");
    list2.add("5");
    list2.add("6");
    list2.add("7");
    list2.add("8");
    for (int i = 0; i < list1.size(); i++) {
      System.out.print(list1.get(i) + " ");
    }
    System.out.println();
    for (int i = 0; i < list2.size(); i++) {
      System.out.print(list2.get(i) + " ");
    }
    System.out.println();
    // Second Solution
    List<String> resultList2 = new ArrayList<String>(list1);
    resultList2.addAll(list2);
    // Second Solution Prints
    System.out.println("Second Solution Prints");
    for (int i = 0; i < resultList2.size(); i++) {
      System.out.print(resultList2.get(i) + " ");
    }
    System.out.println();
  }
}

사전 선언 된 새 배열을 사용하여 Java에서 두 목록을 결합합니다

resultList3가 미리 정의되어 있거나 n 개의 결과 목록을 선언 한 후List<String> resultList3;처럼 수행 할 수있는 경우newList = new ArrayList<String>(list1)list1의 요소를 복사하여 새 배열을 초기화합니다. 그것에 (list).addAll(list2);list2의 요소를list1에 추가합니다.

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

public class Abc {
  public static void main(String[] args) {
    List<String> list1, list2;
    list1 = new ArrayList<String>();
    list2 = new ArrayList<String>();
    list1.add("1");
    list1.add("2");
    list1.add("3");
    list1.add("4");
    list2.add("5");
    list2.add("6");
    list2.add("7");
    list2.add("8");
    for (int i = 0; i < list1.size(); i++) {
      System.out.print(list1.get(i) + " ");
    }
    System.out.println();
    for (int i = 0; i < list2.size(); i++) {
      System.out.print(list2.get(i) + " ");
    }
    System.out.println();
    // third Solution
    List<String> resultList3;
    (resultList3 = new ArrayList<String>(list1)).addAll(list2);
    // Third Solution Prints
    System.out.println("Third Solution Prints");
    for (int i = 0; i < resultList3.size(); i++) {
      System.out.print(resultList3.get(i) + " ");
    }
    System.out.println();
  }
}

관련 문장 - Java List