covert list array
이 자습서에서는 Java 목록을 배열 및 기타 컬렉션으로 변환하는 방법에 대해 설명합니다. 목록을 배열, 문자열, 집합 및 그 반대로 변환하는 예제가 포함되어 있습니다.
이전 자습서에서 목록 컬렉션의 세부 사항에 대해 논의했습니다. 목록, 반복기 등에서 다양한 작업을 보았습니다. 목록이 주어지면이 목록을 문자열, 배열, ArrayList, 집합 등과 같은 다른 컬렉션이나 데이터 구조로 변환 할 수 있습니다.
=> 독점적 인 Java 교육 자습서 시리즈를 보려면 여기를 방문하십시오.
학습 내용 :
목록 변환
여기서 우리가 실제로하는 일은 한 컬렉션 / 구조에서 다른 컬렉션 / 구조로 요소를 전송하는 것입니다. 그렇게함으로써 각 컬렉션 또는 데이터 구조에 자체 레이아웃이 있으므로 요소의 레이아웃을 실제로 변경합니다.
이 자습서에서는 목록에서 다른 데이터 구조로 또는 그 반대로 몇 가지 변환에 대해 설명합니다.
목록을 문자열로 변환
요소 목록을 문자열 표현으로 쉽게 변환 할 수 있습니다. 대부분 문자열 또는 문자 목록을 문자열 표현으로 변환하고 싶을 것입니다.
목록을 문자열로 변환하는 다양한 방법이 있습니다. 가장 인기있는 것은 아래에서 설명합니다.
# 1) toString 메서드 사용
이것은 목록을 문자열로 변환하는 가장 간단한 방법입니다. 이 메서드에서는 목록을 문자열 표현으로 변환하는 목록에 'toString'메서드를 사용하기 만하면됩니다.
아래 프로그램은 toString 메소드의 구현을 보여줍니다.
import java.util.Arrays; import java.util.List; // Convert List of Characters to String in Java class Main { public static void main(String() args) { // create and initialize a character list List strList = Arrays.asList('H', 'e', 'l', 'l', 'o'); //convert list to string using toString method System.out.println('List converted to string representation:
' + strList.toString()); //replace comma between characters with blanks String string = strList.toString() .substring(1, 3 * strList.size() - 1) .replaceAll(', ', ''); // print string System.out.println('String representation by removing delimiters:
' + string); } }
산출:
이 프로그램에서는 문자 목록을 문자열 표현으로 변환 한 후 구분 문자를 제거하고 단일 단어로 표현함으로써 문자열이 더욱 세분화되는 것을 볼 수 있습니다.
# 2) Collectors 클래스 사용
Java 8부터는 'Collectors'클래스와 함께 스트림 API를 사용하여 목록을 문자열로 변환 할 수 있습니다.
예:
import java.util.stream.Collectors; import java.util.Arrays; import java.util.List; class Main { public static void main(String() args) { // create and initialize list List strList = Arrays.asList('W', 'o', 'r', 'l','d'); // convert list to string using collect and joining() method String string= strList.stream().map(String::valueOf).collect(Collectors.joining()); // print string System.out.println('List converted to string:' + string); } }
산출:
위 프로그램에서는 스트림 API를 활용하여 값을 매핑 한 다음 Collectors 클래스의 joining () 메서드를 사용하여 목록을 문자열로 변환합니다.
# 3) StringBuilder 클래스 사용
목록을 문자열로 변환하는 세 번째 방법은 StringBuilder 개체를 사용하는 것입니다. 여기에서 목록의 각 요소는 루프를 사용하여 StringBuilder 개체에 추가됩니다. 그런 다음 StringBuilder 개체는 toString 메서드를 사용하여 문자열 표현으로 변환됩니다.
데모를 위해 다음 프로그램을 확인하십시오.
import java.util.Arrays; import java.util.List; class Main { public static void main(String() args) { // create and initialize the list List strList = Arrays.asList('I', 'n', 'd', 'i', 'a'); // object of stringBuilder StringBuilder sb = new StringBuilder(); // use append method to append list element to StringBuilder object for (Character ch : strList) { sb.append(ch); } // convert StringBuilder object to string using toString() String string = sb.toString(); // print string System.out.println('List converted to string: ' + string); } }
산출:
위 프로그램은 목록의 요소가 추가되는 StringBuilder 객체의 사용법을 보여줍니다. 그런 다음 개체가 문자열로 변환됩니다.
목록을 배열로 변환
요소 목록이 주어지면이 목록을 배열로 변환해야합니다. 이렇게하려면 아래에 설명 된 방법 중 하나를 사용할 수 있습니다.
# 1) toArray 사용
목록을 배열로 변환하는 가장 간단한 방법은 목록의 'toArray'메서드를 사용하는 것입니다.
다음 프로그램은 toArray 메소드의이 구현을 보여줍니다.
import java.util.*; public class Main { public static void main(String() args) { //create and initialize list List strList = new LinkedList(); strList.add('This'); strList.add('is'); strList.add('Java'); strList.add('Tutorial'); System.out.println('The given list:' + strList); //use toArray method to convert list to array String() strArray = strList.toArray(new String(0)); //print the array System.out.println('The Array from List: '); for (String val : strArray) System.out.print(val + ' '); } }
산출:
위의 프로그램에서는 'toArray'메소드를 사용하여 문자열 목록을 문자열 배열로 변환했습니다.
# 2) Java 8 Stream 사용
데이터 수집 도구 란?
다음으로 목록을 배열로 변환하는 방법은 Java 8의 스트림 API를 사용하는 것입니다. 여기에서 목록은 먼저 stream으로 변환 된 다음 stream (). toArray를 사용하여 배열로 변환됩니다.
다음 Java 프로그램은이 변환을 보여줍니다.
import java.util.*; class Main { public static void main (String()args) { //create and initialize the list List l_list = new LinkedList (); l_list.add ('Software'); l_list.add ('Testing'); l_list.add ('Help'); l_list.add ('Tutorial'); System.out.println('The given list:' + l_list); //Convert list to array using stream and toArray methods String() str_array = l_list.stream ().toArray (String()::new); //print the array System.out.println('The Array converted from list : '); for (String val:str_array) System.out.print (val + ' '); } }
산출:
위 프로그램은 Java 8의 스트림 API를 사용하여 목록을 배열로 변환합니다. 배열은 각 루프를 사용하여 인쇄됩니다.
# 3) get 메소드 사용
이것은 목록을 배열로 변환하는 또 다른 방법입니다. 여기에서는 목록의 개별 요소를 검색하는 데 사용할 수있는 목록의 get ()을 사용합니다.
get () 메서드를 사용하여 목록을 배열로 변환하는 프로그램은 다음과 같습니다.
import java.io.*; import java.util.List; import java.util.LinkedList; class Main { public static void main (String() args) { List colors_list = new LinkedList(); colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); colors_list.add('Yellow'); System.out.println('Given list: ' + colors_list); //define the array String() colors_array = new String(colors_list.size()); // get list elements into the array for (int i =0; i 산출:
위의 프로그램에서리스트와 같은 크기의 배열을 만들었습니다. 그런 다음 루프에서 get () 메서드를 사용하여 목록 요소를 검색하고 배열에 할당합니다.
배열을 목록으로 변환
목록을 배열로 변환 할 수 있으므로 배열을 Java의 목록으로 변환 할 수도 있습니다. 다음은 배열을 목록으로 변환 할 수있는 몇 가지 방법입니다.
# 1) 일반 자바 코드 사용
이것은 배열을 목록으로 변환하는 전통적인 방법입니다. 여기에서 루프를 사용하여 각 배열 요소를 목록에 하나씩 추가합니다. 이 경우 목록의 추가 방법이 사용됩니다.
다음 프로그램은 배열을 목록으로 변환하는 전통적인 방법을 구현합니다.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String strArray() = { 'Java', 'Python', 'C++', 'SQL', 'Perl' }; // Print the Array System.out.println('Array: ' + Arrays.toString(strArray)); // Create a List List strlist = new ArrayList(); // Iterate through the array and add each element to the list for (String val : strArray) { strlist.add(val); } // Print the List System.out.println('
List obtained from array: ' + strlist); } }
산출:
# 2) asList () 메서드 사용
배열을 목록으로 변환하는 다음 방법은 Arrays 클래스의 asList () 메서드를 사용하는 것입니다. 여기서 Array를 asList () 메서드에 인수로 전달하면 얻은 목록을 반환합니다.
다음 프로그램이이를 보여줍니다.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { //create and intialize array Integer() oddArray = { 1,3,5,7,9,11 }; //declare a list and use asList method to assign the array to list List oddList = Arrays.asList(oddArray); // Print the List System.out.println('List from array: ' + oddList); } }
산출:
위 프로그램에는 홀수 배열이 있습니다. 그런 다음 Integers 목록을 만들고 목록 인 asList 메서드의 출력에 할당합니다.
# 3) Collection.addAll () 메서드 사용
Collections 클래스의 addAll () 메서드를 사용할 수도 있습니다. 배열과 목록은 모두 Java에서 컬렉션 프레임 워크의 일부입니다.
다음 프로그램은 Collections.addAll () 메서드를 사용하여 배열을 목록으로 변환하는 방법을 보여줍니다.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String strArray() = { 'Java', 'C++', 'C', 'Perl', 'Python' }; // Print the Array System.out.println('Array: ' + Arrays.toString(strArray)); // create a string list List myList = new ArrayList(); // Add array to list using Collections addAll method Collections.addAll(myList, strArray); // Print the List System.out.println('List obtained from array: ' + myList); } }
산출:
여기서 우리는 배열을 초기화했습니다. 빈 목록을 만들었습니다. 그런 다음 Collections.addAll () 메서드는 목록과 배열을 인수로 전달하여 사용됩니다. 이 메서드를 성공적으로 실행하면 목록이 배열 요소로 채워집니다.
# 4) 자바 8 스트림 사용
배열을 목록으로 변환하는 다음 접근 방식은 Java 8 Stream API 및 Collectors 클래스를 사용하는 것입니다. 여기서 배열은 먼저 스트림으로 변환 된 다음 스트림을 사용하여 요소가 목록으로 수집됩니다. 수집 방법. 마지막으로 목록이 반환됩니다.
다음 프로그램은 Stream API를 사용하여 배열을 목록으로 변환하는 구현을 보여줍니다.
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String colorsArray() = { 'Red', 'Green', 'Blue', 'Yellow', 'Magenta' }; // Print the Array System.out.println('Array: ' + Arrays.toString(colorsArray)); // convert the Array to List using stream () and Collectors class List colorslist = Arrays .stream(colorsArray) .collect(Collectors.toList()); // Print the List System.out.println('List from Array: ' + colorslist); } }
산출:
위의 프로그램에서 색상 배열이 생성됩니다. 다음에 빈 목록이 생성되고 스트림 API를 사용하여 배열에서 얻은 목록이 목록에 할당됩니다.
목록을 세트로 변환
집합은 중복 값을 허용하지 않는 정렬되지 않은 요소 모음입니다. Set은 Java Collections 프레임 워크의 일부입니다. 필요한 경우 목록을 설정하거나 그 반대로 변환 할 수 있습니다.
이 섹션에서는 목록을 집합으로 변환하는 데 사용되는 몇 가지 방법을 살펴 보겠습니다.
# 1) 전통적인 방법 사용
기존 Java 코드를 사용하여 목록을 설정하도록 변환 할 수 있습니다. 여기에서 HashSet 또는 treeSet을 만들 수 있습니다. 그런 다음 add 메서드를 사용하여 각 목록 요소를 루프의 집합에 추가합니다.
이 구현은 다음과 같습니다.
import java.util.*; class Main { public static void main(String() args) { // Creating a list of strings List strList = Arrays.asList('Java', 'Perl', 'Python', 'C++', 'C'); //print the list System.out.println('The list : ' + strList); //create a set Set hashSet = new HashSet(); //add list elements to hashset for (String ele : strList) hashSet.add(ele); //print the set System.out.println('HashSet from list:'); for (String val : hashSet) System.out.print(val + ' '); } }
산출:
위의 프로그램에서 문자열 유형의 HashSet 객체를 생성 한 것을 볼 수 있습니다. 그런 다음 향상된 for 루프를 사용하여 목록의 각 요소가 집합에 추가됩니다. 마지막으로 세트가 인쇄됩니다.
추천 자료 = >> 자바의 HashSet
# 2) HashSet 또는 트리 셋 생성자 사용
다음 방법은 집합 생성자를 사용하는 것입니다. 여기에서 집합 생성자 (treeSet 또는 HashSet)를 만듭니다. 목록이이 생성자에 인수로 전달됩니다. 이 목록을 사용하여 세트가 구성됩니다.
이 구현에 대해서는 아래 프로그램을 확인하십시오.
import java.util.*; class Main { public static void main(String() args) { // Create a list of strings List strList = Arrays.asList('Red', 'Green', 'Blue', 'Yellow', 'Cyan', 'Magenta'); System.out.println('Original List:' + strList); // Creating a hash set using constructor and pass list to the constructor Set hashSet = new HashSet(strList); System.out.println('
HashSet created from list:'); //print the hashSet for (String val : hashSet) System.out.print(val + ' '); //Create a treeset using constructor and pass list to the constructor Set treeSet = new TreeSet(strList); System.out.println('
TreeSet from list: '); //print the treeset for (String x : treeSet) System.out.print(x + ' '); } }
산출:
위의 프로그램에서리스트를 인자로 전달하여 HashSet과 treeSet을 모두 생성합니다. 마지막으로 HashSet 및 treeset의 내용이 모두 표시됩니다.
# 3) addAll 메소드 사용
이것은 이전에 보았던 Collections의 addAll 메소드와 동일합니다. 여기서 addAll 메소드는 목록 내용을 세트에 복사하는 데 사용됩니다.
다음 프로그램은 addAll 메소드의 사용법을 보여줍니다.
import java.util.*; class Main { public static void main(String() args) { // Creating a list of strings List intList = Arrays.asList(1,3,5,7,9,11,13); System.out.println('Original List: ' + intList); //create a hashset Set hashSet = new HashSet(); //add elements of list to hashSet using addAll method hashSet.addAll(intList); System.out.println('HashSet created from list: '); //print the hashSet for (Integer val : hashSet) System.out.print(val + ' '); } }
산출:
이 프로그램은 HashSet 객체를 생성합니다. 그런 다음 목록을 매개 변수로 사용하여 HashSet 오브젝트에서 addAll 메소드가 호출됩니다. 이 메서드는 목록 내용을 집합에 복사합니다.
# 4) 자바 8 스트림 사용
이미 살펴본 것처럼 Java 8 스트림을 사용하여 목록을 세트를 포함한 다른 컬렉션으로 변환 할 수도 있습니다. 이를 수행하려면 stream (). collect 메소드를 사용해야합니다.
다음 프로그램은이 구현을 보여줍니다.
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a list of strings List colorsList = Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow'); System.out.println('Original List:' + colorsList); // Convert to set using stream and Collectors class toSet() method Set colorsSet = colorsList.stream().collect(Collectors.toSet()); System.out.println('The set from list:'); //print the set for (String x : colorsSet) System.out.print(x + ' '); }
산출:
위의 프로그램은 목록에서 배열로 변환하는 경우에 표시된 것과 유사합니다. 먼저 목록이 스트림으로 변환 된 다음 collect 메소드가 스트림 요소를 수집하여 세트로 변환합니다.
목록에서 설정으로 변환을 수행하는 다양한 메서드를 살펴 보았으므로 이제 집합을 목록으로 변환하는 데 사용되는 메서드를 살펴 보겠습니다.
세트를 목록으로 변환
목록을 집합으로 변환하는 방식과 마찬가지로 집합을 목록으로 변환 할 수도 있습니다. 이 변환에 대해 위에서 설명한 것과 동일한 방법을 사용할 수 있습니다. 유일한 차이점은 목록의 위치를 전환하고 프로그램에서 설정한다는 것입니다.
다음은 각 방법에 대한 집합에서 목록으로 변환하는 예입니다.
# 1) 일반 자바 사용
importjava.util.*; class Main { public static void main(String() args) { // Create a set(hashset) and initialize it Set hashSet = new HashSet(); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); hashSet.add('Cyan'); hashSet.add('Magenta'); hashSet.add('Yellow'); //print the set System.out.println('The set elements:'); for (String x : hashSet) System.out.print(x + ' '); //create a list (ArrayList) List strList = new ArrayList(hashSet.size()); //traverse the set and add its elements to the list for (String x : hashSet) strList.add(x); //print the list System.out.println('
Created ArrayList:' + strList); } }
산출:
위의 프로그램은 집합을 선언하고 초기화합니다. 그런 다음 목록을 만들고 각 집합 요소를 목록에 추가합니다. 마지막으로 목록을 인쇄합니다.
# 2) 생성자 사용
import java.util.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize it Set hashSet = new HashSet(); hashSet.add('Delhi'); hashSet.add('Mumbai'); hashSet.add('Chennai'); hashSet.add('Kolkata'); //print the Set System.out.println('The set :'); for(String str: hashSet) System.out.print(str + ' '); //pass hashset to linkedlist constructor List l_List = new LinkedList(hashSet); //print the linked list System.out.println ('
LinkedList from set: ' + l_List); } }
산출:
여기에서 set 객체를 인수로 사용하여 목록 생성자를 사용할 수 있습니다. 그러면 모든 집합 요소가 목록 개체에 복사됩니다.
# 3) addAll 메소드 사용
import java.util.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize it Set hashSet = new HashSet(); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); hashSet.add('Cyan'); hashSet.add('Magenta'); hashSet.add('Yellow'); //print the Set System.out.println('The set: '); for(String x:hashSet) System.out.print(x + ' '); //create a list(ArrayList) List colorList = new ArrayList(); //use addAll method to add elements from set colorList.addAll(hashSet); //print the list System.out.println('
The ArrayList from set: ' + colorList); } }
산출:
이 프로그램에서는 목록 개체가 생성됩니다. 그런 다음 Collections.addAll () 메서드를 사용하여 집합의 요소가 목록에 추가됩니다.
# 4) Java 8 Stream 사용
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize the set Set hashSet = new HashSet(); hashSet.add('Yellow'); hashSet.add('Magenta'); hashSet.add('Cyan'); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); //print the Set System.out.println('The set:'); for(String str : hashSet) System.out.print(str + ' '); //create a list and assign it elements of set through stream and Collectors class List strList = hashSet.stream().collect(Collectors.toList()); //print the list System.out.println('
List obtained from set: ' + strList); } }
산출:
위의 프로그램과 같이 Java 8 스트림과 collect 메소드를 사용하여 세트를 목록으로 변환 할 수도 있습니다.
어레이 대 목록
배열과 목록의 몇 가지 차이점을 살펴 보겠습니다.
정렬 명부 배열은 Java의 기본 데이터 구조입니다. 이 목록은 LinkedList, ArrayList 등과 같이 많은 클래스를 확장 할 수있는 Java의 컬렉션 프레임 워크의 일부인 인터페이스입니다. 고정 된 크기 목록 크기는 동적입니다. ()를 사용하여 배열 요소에 액세스 할 수 있습니다. 목록 멤버는 메소드를 사용하여 액세스됩니다. 배열은 기본 유형과 그 요소로 객체를 가질 수 있습니다. 목록에는 개체 만 포함될 수 있습니다. 배열은 요소와 함께 연산자를 사용할 수 있습니다. 목록은 연산자를 사용할 수 없습니다. 대신 사용 방법을 나열합니다. 배열은 형식 안전성을 보장하기 위해 제네릭과 함께 작동 할 수 없습니다. 목록은 일반적 일 수 있습니다.
자주 묻는 질문
Q # 1) Java에서 목록을 배열로 어떻게 변환합니까?
대답: Java에서 목록을 배열로 변환하는 기본 방법은 List 인터페이스의‘toArray ()’메소드를 사용하는 것입니다.
아래의 간단한 호출은 목록을 배열로 변환합니다.
Object() array = list.toArray();
목록을 배열로 변환하는 위에서 설명한 다른 방법도 있습니다.
Q # 2) 배열은 Java의 목록입니까?
대답: 아니요. 배열은 길이가 고정 된 Java의 기본 구조입니다. 목록 인터페이스에서 확장되지 않습니다. 목록 인터페이스에서 확장되고 배열과 유사한 구조는 ArrayList입니다.
Q # 3) Java에서 배열을 목록으로 어떻게 변환합니까?
대답: Java에서 배열을 목록으로 변환하는 기본 방법 중 하나는 Arrays 클래스의 asList () 메소드를 사용하는 것입니다.
List aList = Arrays.asList (myarray);
이 외에도이 자습서의 앞부분에서 설명한대로 배열을 목록으로 변환하는 더 많은 메서드가 있습니다.
Q # 4) Java에서 더 빠른 세트 또는 목록은 무엇입니까?
대답: 저장되는 데이터에 따라 다릅니다. 데이터가 고유하면 목록이 더 좋고 빠릅니다. 큰 데이터 세트가있는 경우 세트로 이동하십시오. 집합 구조는 일반적으로 목록보다 10 배 더 많은 메모리를 필요로합니다.
Q # 5) ArrayList와 Set의 차이점은 무엇입니까?
대답: 목록은 정렬 된 요소의 모음이고 집합은 정렬되지 않은 요소의 모음입니다. 목록에는 중복 요소가있을 수 있지만 집합에는 중복 요소가있을 수 없습니다.
결론
이 자습서에서는 배열, 집합 및 그 반대로 다양한 목록 변환을 보았습니다. 또한 배열과 목록의 주요 차이점도 확인했습니다.
이 다음 튜토리얼에서는 ArrayList, LinkedList 등과 같은 목록 클래스에 대해 자세히 설명합니다.
=> 여기에서 완벽한 Java 교육 가이드를 확인하십시오.
추천 도서