Java에서 컬렉션을 목록으로 변환

Dhruvdeep Singh Saini 2023년10월12일
  1. 생성자를 사용하여 Java에서 컬렉션을 목록으로 변환
  2. 내장 함수를 사용하여 Java에서 컬렉션을 목록으로 변환
  3. for 루프를 사용하여 Java에서 컬렉션을 목록으로 변환
  4. collect를 사용하여 Java에서 컬렉션을 목록으로 변환
Java에서 컬렉션을 목록으로 변환

이 기사에서는 Java에서 컬렉션을 목록으로 변환하는 다양한 방법을 소개하고 논의합니다.

생성자를 사용하여 Java에서 컬렉션을 목록으로 변환

생성자 함수를 사용하고 변환하려는 컬렉션을 매개변수에 제공할 수 있습니다.

통사론:

List<Generic> listname = new ArrayList<>(collectionName);

예시:

import java.util.*;
public class ExpHStoLL {
  public static void main(String[] args) {
    Set<String> hs = new HashSet<String>();
    // Adding names in hs
    hs.add("Dhruv");
    hs.add("Sahil");
    hs.add("Ajay");
    System.out.println("Hash Set Collection :" + hs);

    // Using constructor of hs for linked list
    List<String> MyList = new LinkedList<String>(hs);
    System.out.println("\nLinked List after conversion: " + MyList);
  }
}

출력:

Hash Set Collection :[Dhruv, Sahil, Ajay]
Linked List after conversion: [Dhruv, Sahil, Ajay]

여기에서 이름의 해시 집합을 만든 다음 hs 생성자를 사용하여 해시 집합에서 목록을 만듭니다.

내장 함수를 사용하여 Java에서 컬렉션을 목록으로 변환

Array 및 Collections 클래스에서 컬렉션을 목록으로 변환하는 두 가지 기본 제공 메서드가 있습니다.

asList를 사용하여 Java에서 컬렉션을 목록으로 변환

Array 클래스는 배열 컬렉션을 목록으로 변환하는 asList() 메서드를 제공합니다.

통사론:

List<Generic> MyList = Arrays.asList(ArrayName);

예시:

import java.util.*;
public class ExpArrtoL {
  public static void main(String args[]) {
    String[] MyArray = {"Dhruv", "Sahil", "Ajay"};
    System.out.println("My Array: " + Arrays.toString(MyArray));

    // Using asList function
    List<String> MyList = Arrays.asList(MyArray);
    System.out.println("List using asList(): " + MyList);
  }
}

출력:

My Array: [Dhruv, Sahil, Ajay]
List using asList(): [Dhruv, Sahil, Ajay]

위의 코드에서 우리는 배열을 만든 다음 배열 이름 MyArray를 인수로 사용하여 컬렉션을 목록으로 변환하는 asList() 함수를 사용했습니다.

addAll을 사용하여 Java에서 컬렉션을 목록으로 변환

addAll()은 컬렉션을 목록으로 변환하는 데 사용할 수 있는 컬렉션 프레임워크에서 제공되는 메서드입니다. 컬렉션의 요소는 하나씩 지정하거나 배열로 지정할 수 있습니다.

이는 asList() 메서드와 유사하지만 더 나은 성능을 제공하여 시간 복잡성을 효과적으로 개선합니다. 컬렉션에서 목록으로 항목을 복사하려면 두 개의 매개변수가 필요하므로 이 방법을 사용하기 전에 배열과 목록을 모두 만들어야 합니다.

통사론:

Collections.addAll(ListName, ArrayName);

예시:

import java.util.*;
public class ExpArrtoL {
  public static void main(String args[]) {
    String[] MyArray = {"Dhruv", "Sahil", "Ajay"};
    System.out.println("My Array: " + Arrays.toString(MyArray));
    List<String> MyList = new ArrayList<>();

    // Using addAll function
    Collections.addAll(MyList, MyArray);
    System.out.println("List using addAll(): " + MyList);
  }
}

출력:

My Array: [Dhruv, Sahil, Ajay]
List using addAll(): [Dhruv, Sahil, Ajay]

for 루프를 사용하여 Java에서 컬렉션을 목록으로 변환

생성자나 내장 함수를 사용하고 싶지 않다면 for-each 루프가 컬렉션을 목록으로 변환하는 데 도움이 될 수 있습니다. 이 방법은 쉬운 변환 방법을 제공하므로 초보자에게 친숙합니다.

예시:

import java.util.*;
public class ListUsingForLoop {
  public static void main(String[] args) {
    Set<String> hs = new HashSet<String>();
    hs.add("Dhruv");
    hs.add("Sahil");
    hs.add("Ajay");
    System.out.println("Our HashSet HS:" + hs);

    // List of the same size as our HashSet hs
    List<String> MyList = new ArrayList<String>(hs.size());

    // The loop picks each string of HS and adds it to the List
    for (String x : hs) MyList.add(x);
    System.out.println("\nList made from HS:" + MyList);
  }
}

출력:

Our HashSet HS:[Dhruv, Sahil, Ajay]

List made from HS:[Dhruv, Sahil, Ajay]

여기에서 이름의 해시 세트를 만들고 해시 세트 hs에서 찾은 각 문자열에 대해 MyList 목록에 문자열을 추가하도록 지정하기 위해 각 루프에 대해 사용했습니다.

collect를 사용하여 Java에서 컬렉션을 목록으로 변환

스트림의 collect() 함수를 사용하여 컬렉션을 목록으로 변환하고 원래 컬렉션을 편집하지 않고도 결과를 표시할 수도 있습니다.

collect() 메소드는 데이터 구조 또는 컬렉션에서 요소를 수집하고 이를 조작하기 위한 추가 논리를 제공합니다.

통사론:

List<Generic> ListName = CollectionName.stream().collect(toList());

예시:

import java.util.*;
import java.util.stream.*;
public class ExpHStoLL {
  public static void main(String[] args) {
    Set<String> hs = new HashSet<String>();
    // Adding names in hs
    hs.add("Dhruv");
    hs.add("Sahil");
    hs.add("Ajay");
    System.out.println("Hash Set Collection :" + hs);

    List<String> MyList = hs.stream().collect(Collectors.toList());
    System.out.println("\nConverted to List: " + MyList);
  }
}

출력:

Hash Set Collection :[Dhruv, Sahil, Ajay]
Converted to List: [Dhruv, Sahil, Ajay]

스트림 API의 collect() 메서드를 사용하여 컬렉션을 목록으로 변환하는 동안 참조를 사용하여 복사가 수행됩니다.

목록은 참조 데이터 유형, 즉 실제 개체 또는 요소의 참조 주소를 저장하므로 목록을 변경하면 컬렉션도 변경됩니다.

원본 컬렉션에서 만든 복사본 목록은 얕은 복사본입니다. 즉, 목록을 제거하면 원래 컬렉션에서도 요소가 제거됩니다.

목록에 컬렉션을 복사하면 오래된 참조를 복사하는 대신 목록에 대한 새 메모리 할당이 발생하는 깊은 복사본을 만들어 이를 방지할 수 있습니다.

관련 문장 - Java List

관련 문장 - Java Collection