java list how create
이 Java 목록 자습서는 Java에서 목록을 생성, 초기화 및 인쇄하는 방법을 설명합니다. 이 자습서에서는 전체 코드 예제가있는 목록 목록도 설명합니다.
이 튜토리얼은 Java Collection Interface의 기본 구조 중 하나 인 데이터 구조 '목록'을 소개합니다.
Java의 목록은 순서에 따른 일련의 요소입니다. java.util 패키지의 List 인터페이스는 List라는 특정 방식으로 정렬 된이 일련의 객체를 구현하는 인터페이스입니다.
배열과 마찬가지로 목록 요소는 첫 번째 색인이 0에서 시작하는 색인을 사용하여 액세스 할 수도 있습니다. 색인은 색인 'i'에있는 특정 요소를 나타냅니다. 즉, 목록의 시작 부분에서 i 개 요소입니다.
Java 목록의 일부 특성은 다음과 같습니다.
- 목록에는 중복 요소가있을 수 있습니다.
- 목록에는 'null'요소도 포함될 수 있습니다.
- 목록은 제네릭을 지원합니다. 즉, 제네릭 목록을 가질 수 있습니다.
- 동일한 목록에 혼합 된 개체 (다른 클래스의 개체)를 포함 할 수도 있습니다.
- 목록은 항상 삽입 순서를 유지하고 위치 액세스를 허용합니다.
학습 내용 :
자바 목록
Java List 인터페이스는 Java Collection 인터페이스의 하위 유형입니다. Java의 Collection 인터페이스를 계승 한 표준 인터페이스입니다.
다음은 Java List 인터페이스의 클래스 다이어그램입니다.
위의 클래스 다이어그램에서 볼 수 있듯이 Java 목록 인터페이스는 java.util 패키지의 Collection 인터페이스에서 확장되며 이는 차례로 java.util 패키지의 Iterable 인터페이스에서 확장됩니다. AbstractList 클래스는 List 인터페이스의 골격 구현을 제공합니다.
LinkedList, Stack, Vector, ArrayList 및 CopyOnWriteArrayList 클래스는 모두 프로그래머가 자주 사용하는 List 인터페이스의 구현 클래스입니다. 따라서 Java에는 Stack, LinkedList, ArrayList 및 Vector의 네 가지 유형의 목록이 있습니다.
따라서 List Interface를 구현해야하는 경우 요구 사항에 따라 위의 목록 유형 클래스를 구현할 수 있습니다. 프로그램에 목록 인터페이스의 기능을 포함하려면 다음을 수행해야합니다. 다음과 같이 목록 인터페이스 및 기타 클래스 정의를 포함하는 패키지 java.util. *를 가져 오십시오.
import java.util.*;
목록 생성 및 선언
우리는 이미 List가 인터페이스이고 ArrayList, Stack, Vector 및 LinkedList와 같은 클래스에 의해 구현된다고 말했습니다. 따라서 당신은 할 수 있습니다 다음 방법 중 하나로 목록의 인스턴스를 선언하고 만듭니다.
List linkedlist = new LinkedList(); List arrayList = new ArrayList(); List vec_list = new Vector(); List stck_list = new Stack();
위에 표시된대로 위의 클래스 중 하나로 목록을 만든 다음 값으로 이러한 목록을 초기화 할 수 있습니다. 위의 문에서 목록의 인스턴스를 만드는 데 사용되는 클래스에 따라 요소의 순서가 변경된다는 것을 알 수 있습니다.
예를 들어 스택 클래스가있는 목록의 경우 순서는 LIFO (Last In, First Out)입니다.
Java 목록 초기화
목록 객체를 초기화하기 위해 아래 제공된 방법 중 하나를 사용할 수 있습니다.
# 1) asList 메서드 사용
asList () 메서드는 Arrays 항목에서 이미 자세히 다루었습니다. 배열 값을 사용하여 불변 목록을 만들 수 있습니다.
일반적인 구문은 다음과 같습니다.
List listname = Arrays.asList(array_name);
여기서 data_type은 배열의 유형과 일치해야합니다.
위의 문은 불변 목록을 만듭니다. 목록을 변경 가능하게하려면 new를 사용하여 목록의 인스턴스를 만든 다음 asList 메서드를 사용하여 배열 요소를 할당해야합니다.
이것은 아래와 같습니다.
List listname = new ArrayList (Arrays.asList(array_name));
하자 asList 메소드를 사용하여 목록의 생성 및 초기화를 보여주는 Java 프로그램을 구현합니다. .
Windows 10을위한 최고의 MP3 다운로더
import java.util.*; public class Main { public static void main(String() args) { //array of strings String() strArray = {'Delhi', 'Mumbai', 'Kolkata', 'Chennai'}; //initialize an immutable list from array using asList method List mylist = Arrays.asList(strArray); //print the list System.out.println('Immutable list:'); for(String val : mylist){ System.out.print(val + ' '); } System.out.println('
'); //initialize a mutable list(arraylist) from array using asList method List arrayList = new ArrayList(Arrays.asList(strArray)); System.out.println('Mutable list:'); //add one more element to list arrayList.add('Pune'); //print the arraylist for(String val : arrayList){ System.out.print(val + ' '); } }
산출:
위의 프로그램에서 우리는 먼저 asList 메소드를 사용하여 불변 목록을 생성했습니다. 그런 다음 ArrayList의 인스턴스를 만든 다음 asList 메서드를 사용하여 배열의 값으로이 ArrayList를 초기화하여 변경 가능한 목록을 만듭니다.
두 번째 목록은 변경 가능하므로 더 많은 값을 추가 할 수도 있습니다.
# 2) List.add () 사용
이미 언급했듯이 목록은 인터페이스 일 뿐이므로 인스턴스화 할 수 없습니다. 그러나이 인터페이스를 구현하는 클래스를 인스턴스화 할 수 있습니다. 따라서 목록 클래스를 초기화하려면 목록 인터페이스 메서드이지만 각 클래스에 의해 구현되는 각각의 add 메서드를 사용할 수 있습니다.
만약 너라면 다음과 같이 연결 목록 클래스를 인스턴스화합니다.
List llist = new LinkedList ();
그런 다음 목록에 요소를 추가하려면 다음과 같이 add 메서드를 사용할 수 있습니다.
llist.add(3);
같은 문에서 add 메서드를 호출하여 목록을 인스턴스화하고 초기화하는 '이중 중괄호 초기화'라는 기술도 있습니다.
이것은 아래와 같이 수행됩니다.
List llist = new LinkedList (){{ add(1); add(3);}};
위의 문은 요소 1과 3을 목록에 추가합니다.
다음 프로그램은 add 메소드를 사용한 목록 초기화 . 또한 이중 중괄호 초기화 기술을 사용합니다.
import java.util.*; public class Main { public static void main(String args()) { // ArrayList.add method List str_list = new ArrayList(); str_list.add('Java'); str_list.add('C++'); System.out.println('ArrayList : ' + str_list.toString()); // LinkedList.add method List even_list = new LinkedList(); even_list.add(2); even_list.add(4); System.out.println('LinkedList : ' + even_list.toString()); // double brace initialization - use add with declaration & initialization List num_stack = new Stack(){{ add(10);add(20); }}; System.out.println('Stack : ' + num_stack.toString()); } }
산출:
이 프로그램에는 ArrayList, LinkedList 및 Stack의 세 가지 목록 선언이 있습니다.
ArrayList 및 LinkedList 개체가 인스턴스화되고 add 메서드가 호출되어 이러한 개체에 요소를 추가합니다. 스택의 경우 인스턴스화 자체 중에 add 메서드가 호출되는 이중 중괄호 초기화가 사용됩니다.
# 3) 컬렉션 클래스 메서드 사용
Java의 컬렉션 클래스에는 목록을 초기화하는 데 사용할 수있는 다양한 메서드가 있습니다.
방법 중 일부는 다음과 같습니다.
- addAll
그만큼 컬렉션 addAll 메서드의 일반 구문은 다음과 같습니다.
List listname = Collections.EMPTY_LIST; Collections.addAll(listname = new ArrayList(), values…);
여기에서 빈 목록에 값을 추가합니다. addAll 메소드는 목록에 삽입 될 값이 뒤에 오는 첫 번째 매개 변수로 목록을 사용합니다.
- unmodifiableList ()
‘unmodifiableList ()’메서드는 요소를 추가하거나 삭제할 수없는 불변 목록을 반환합니다.
이 메서드의 일반적인 구문은 다음과 같습니다.
List listname = Collections.unmodifiableList(Arrays.asList(values…));
이 메서드는 목록 값을 매개 변수로 사용하고 목록을 반환합니다. 이 목록에서 요소를 추가하거나 삭제하려고하면 컴파일러에서 예외가 발생합니다. UnsupportedOperationException.
- singletonList ()
‘singletonList’메소드는 단일 요소가 포함 된 목록을 반환합니다. 목록은 변경할 수 없습니다.
이 메서드의 일반적인 구문은 다음과 같습니다.
List listname = Collections.singletonList(value);
다음 Java 프로그램은 Collections 클래스의 세 가지 메소드를 모두 보여줍니다. 위에서 논의했습니다.
import java.util.*; public class Main { public static void main(String args()) { // empty list List list = new ArrayList(); // Instantiating list using Collections.addAll() Collections.addAll(list, 10, 20, 30, 40); // Print the list System.out.println('List with addAll() : ' + list.toString()); // Create& initialize the list using unmodifiableList method List intlist = Collections.unmodifiableList( Arrays.asList(1,3,5,7)); // Print the list System.out.println('List with unmodifiableList(): ' + intlist.toString()); // Create& initialize the list using singletonList method List strlist = Collections.singletonList('Java'); // Print the list System.out.println('List with singletonList(): ' + strlist.toString()); } }
산출:
# 4) Java8 스트림 사용
Java 8에 스트림이 도입됨에 따라 데이터 스트림을 구성하고 목록으로 수집 할 수도 있습니다.
다음과 같은 프로그램은 스트림을 사용하여 목록을 만드는 것을 보여줍니다.
import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String args()) { // Creating a List using toList Collectors method List list1 = Stream.of('January', 'February', 'March', 'April', 'May') .collect(Collectors.toList()); // Print the list System.out.println('List from Java 8 stream: ' + list1.toString()); } }
산출:
위의 프로그램은 문자열 스트림을 목록으로 수집하여 반환합니다. collect 함수에서 asList를 제외하고 'toCollection', 'unmodifiableList'등과 같은 다른 Collectors 메소드를 사용할 수도 있습니다.
# 5) Java 9 List.of () 메서드
Java 9, List.of ()에 새로운 메소드가 도입되었습니다.이 메소드는 여러 요소를 취하고 목록을 구성합니다. 구성된 목록은 변경할 수 없습니다.
import java.util.List; public class Main { public static void main(String args()) { // Create a list using List.of() List strList = List.of('Delhi', 'Mumbai', 'Kolkata'); // Print the List System.out.println('List using Java 9 List.of() : ' + strList.toString()); } }
산출:
목록 예
다음은 목록 인터페이스와 다양한 방법을 사용하는 완전한 예입니다.
Android에서 APK를 여는 방법
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List intList = new ArrayList(); //add two values to the list intList.add(0, 10); intList.add(1, 20); System.out.println('The initial List:
' + intList); // Creating another list List cp_list = new ArrayList(); cp_list.add(30); cp_list.add(40); cp_list.add(50); // add list cp_list to intList from index 2 intList.addAll(2, cp_list); System.out.println('List after adding another list at index 2:
'+ intList); // Removes element from index 0 intList.remove(0); System.out.println('List after removing element at index 0:
' + intList); // Replace value of last element intList.set(3, 60); System.out.println('List after replacing the value of last element:
' + intList); } }
산출:
위의 프로그램 출력은 ArrayList에서 수행되는 다양한 작업을 보여줍니다. 먼저 목록을 만들고 초기화합니다. 그런 다음 다른 목록의 내용을이 목록에 복사하고 목록에서 요소를 제거합니다. 마지막으로 목록의 마지막 요소를 다른 값으로 바꿉니다.
다음 자습서에서 목록 메서드를 자세히 살펴 보겠습니다.
목록 인쇄
Java에서 목록의 요소를 인쇄 할 수있는 다양한 방법이 있습니다.
여기서 몇 가지 방법에 대해 설명하겠습니다.
# 1) For 루프 / 향상된 For 루프 사용
목록은 인덱스를 사용하여 액세스 할 수있는 정렬 된 컬렉션입니다. 목록의 각 요소를 인쇄하기 위해 인덱스를 사용하여 반복하는 데 사용되는 for 루프를 사용할 수 있습니다.
Java에는 목록의 각 요소에 액세스하고 인쇄하는 데 사용할 수있는 향상된 for 루프로 알려진 또 다른 버전의 for 루프가 있습니다.
아래에 표시된 Java 프로그램은 for 루프 및 향상된 for 루프를 사용하여 목록 내용을 인쇄합니다.
import java.util.List; import java.util.ArrayList; import java.util.Arrays; class Main{ public static void main (String() args) { //string list List list = Arrays.asList('Java', 'Python', 'C++', 'C', 'Ruby'); //print list using for loop System.out.println('List contents using for loop:'); for (int i = 0; i 산출:
# 2) toString 메서드 사용
목록 인터페이스의‘toString ()’메서드는 목록의 문자열 표현을 반환합니다.
아래 프로그램 toString () 메서드의 사용법을 보여줍니다.
import java.util.List; import java.util.ArrayList; class Main{ public static void main (String() args){ //initialize a string list List list = new ArrayList(){{add('Python');add('C++');add('Java');}}; // string representation of list using toString method System.out.println('List contents using toString() method:' + list.toString()); } }
산출:
배열로 변환 된 목록
목록에는 목록을 배열로 변환하는 toArray () 메소드가 있습니다. 배열로 변환되면 해당 항목에서 설명하는 배열 메서드를 사용하여이 배열의 내용을 인쇄 할 수 있습니다. for 또는 Enhanced for 루프 또는 toString 메서드를 사용할 수 있습니다.
아래 주어진 예 toString 메서드를 사용하여 배열 내용을 인쇄합니다.
import java.util.*; class Main { public static void main (String() args) { //list of odd numbers List oddlist = Arrays.asList(1,3,5,7,9,11); // using List.toArray() method System.out.println('Contents of list converted to Array:'); System.out.println(Arrays.toString(oddlist.toArray())); } }
산출:
자바 8 스트림 사용
스트림은 Java 8에 도입되었습니다. 스트림을 사용하여 목록을 반복 할 수 있습니다. 목록을 반복 할 수있는 람다도 있습니다.
아래 프로그램은 목록을 반복하고 그 내용을 표시하기위한 스트림 사용.
import java.util.*; class Main{ public static void main (String() args){ //list of even numbers List evenlist = Arrays.asList(2,4,6,8,10,12,14); // print list using streams System.out.println('Contents of evenlist using streams:'); evenlist.stream().forEach(S ->System.out.print(S + ' ')); } }
산출:
위에서 설명한 방법 외에도 목록 반복기를 사용하여 목록을 반복하고 해당 내용을 표시 할 수 있습니다. 이후 튜토리얼에서 목록 반복기에 대한 전체 기사를 볼 수 있습니다.
목록 목록
Java 목록 인터페이스는 '목록 목록'을 지원합니다. 여기에서 목록의 개별 요소는 다시 목록입니다. 이것은 다른 목록 안에 목록을 가질 수 있음을 의미합니다.
이 개념은 CSV 파일에서 데이터를 읽어야 할 때 매우 유용합니다. 여기에서 여러 목록 또는 목록 내부의 목록을 읽은 다음 메모리에 저장해야 할 수 있습니다. 다시이 데이터를 처리하고 파일에 다시 써야합니다. 따라서 이러한 상황에서 목록 목록을 유지 관리하여 데이터 처리를 단순화 할 수 있습니다.
다음 Java 프로그램은 Java 목록 목록의 예를 보여줍니다.
이 프로그램에는 String 유형의 목록이 있습니다. 두 개의 개별 문자열 유형 목록을 만들고이 목록에 값을 할당합니다. 이 두 목록은 모두 add 메서드를 사용하여 목록 목록에 추가됩니다.
목록 목록의 내용을 표시하기 위해 두 개의 루프를 사용합니다. 외부 루프 (foreach)는 목록에 액세스하는 목록 목록을 반복합니다. 내부 foreach 루프는 이러한 각 목록의 개별 문자열 요소에 액세스합니다.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String() args) { //create list of lists List java_listOfLists = new ArrayList (); //create a language list and add elements to it ArrayList lang_list = new ArrayList(); lang_list.add('Java'); lang_list.add('C++'); //add language list to java list of list java_listOfLists.add(lang_list); //create a city list and add elements to it ArrayList city_list = new ArrayList(); city_list.add('Pune'); city_list.add('Mumbai'); //add the city list to java list of lists java_listOfLists.add(city_list); //display the contents of list of lists System.out.println('Java list of lists contents:'); java_listOfLists.forEach((list) -> //access each list { list.forEach((city)->System.out.print(city + ' ')); //each element of inner list }); } }
산출:
Java 목록 목록은 작은 개념이지만 특히 프로그램에서 복잡한 데이터를 읽어야 할 때 중요합니다.
자주 묻는 질문
Q # 1) Java에서 목록 및 설정은 무엇입니까?
대답: 목록은 정렬 된 요소 모음입니다. 목록에 중복 요소가있을 수 있습니다.
세트는 정렬 된 컬렉션이 아닙니다. 세트의 요소는 특정 순서로 정렬되지 않습니다. 또한 세트의 요소는 고유해야합니다. 중복을 허용하지 않습니다.
Q # 2) Java에서 목록은 어떻게 작동합니까?
대답: 이 목록은 Collection 인터페이스에서 확장 된 Java 인터페이스입니다. ArrayList, LinkedList, Stack 및 Vector 클래스는 목록 인터페이스를 구현합니다. 따라서 프로그래머는 이러한 클래스를 사용하여 목록 인터페이스의 기능을 사용할 수 있습니다.
Q # 3) Java에서 ArrayList 란 무엇입니까?
대답: ArrayList는 동적 배열입니다. 크기를 조정할 수있는 요소 모음이며 목록 인터페이스를 구현합니다. ArrayList는 내부적으로 배열을 사용하여 요소를 저장합니다.
Q # 4) Java에서 목록이 0 또는 1에서 시작합니까?
대답: Java의 목록에는 0부터 시작하는 정수 인덱스가 있습니다. 이는 목록의 첫 번째 요소가 인덱스 0에 있고 두 번째 요소가 인덱스 1에 있음을 의미합니다.
Q # 5) 목록이 정렬되어 있습니까?
대답: 예. 목록은 정렬 된 요소 모음입니다. 이 순서는 목록에 새 요소를 삽입하는 동안 유지됩니다.
결론
이 튜토리얼에서는 Java의 목록 인터페이스를 소개했습니다. 또한 목록 생성, 목록 초기화, 목록 인쇄 등과 같은 목록의 주요 개념에 대해서도 논의했습니다.
다음 자습서에서는 목록 인터페이스에서 제공하는 다양한 방법에 대해 설명합니다. 또한 목록 개체를 반복하는 데 사용되는 반복자 구성에 대해서도 설명합니다. 다음 자습서에서 목록 개체를 다른 데이터 구조로 변환하는 방법에 대해 설명합니다.
=> 모두를위한 Java 교육 시리즈를 보려면 여기를 방문하십시오.
추천 도서