Java의 목록을 사용하면 순서가 지정된 개체 컬렉션을 유지할 수 있습니다. null 요소뿐만 아니라 중복 요소도 Java의 목록에 저장할 수 있습니다. 목록 인터페이스는 다음의 일부입니다. java.util 패키지이며 Collection 인터페이스를 상속합니다. 삽입 순서를 유지합니다.
Java에서 List를 반복하는 방법에는 여러 가지가 있습니다. 이에 대해서는 아래에서 설명합니다.
행동 양식:
- 루프 사용(순진한 접근 방식)
- 사용 반복자
- 사용 목록 반복자
- 람다 표현식 사용
- 사용 스트림.forEach()
- Spliterator 사용(Java 8 이상)
방법 1-A: 간단한 for 루프
간단한 for 루프를 사용하여 반복하여 각 요소에 액세스할 수 있습니다. 인덱스를 루프 변수로 사용하여 인덱스에 액세스할 수 있습니다.
통사론:
for (i = 0; i>
다음은 이 방법의 예입니다.
자바
// Java Program to iterate over List // Using simple for loop // Importing all classes of // java.util package import java.util.*; // CLass class GFG { // Main driver method public static void main(String args[]) { // Creating a ArrayList ListmyList = 새로운 ArrayList(); // 목록에 요소 추가 // 사용자 정의 입력 myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // List를 반복하는 For 루프 for (int i = 0; i< myList.size(); i++) { // Print all elements of List System.out.println(myList.get(i)); } } }> 산출
A B C D>
위 방법의 복잡성:
시간 복잡도: O(n), 여기서 'n'은 목록의 크기입니다.
보조 공간: O(1), 루프 변수에 상수 공간이 사용됩니다(이 경우 i).
방법 1-B: 향상된 for 루프
향상된 for 루프를 사용하여 반복하여 각 요소에 액세스할 수 있습니다. 이 루프는 J2SE 5.0에서 도입되었습니다. 이는 for 루프를 순회하는 대체 접근 방식입니다. 코드를 더 읽기 쉽게 만듭니다.
CSS로 이미지 정렬
통사론:
for(data_type variable : List_name) { // Body of the loop. // Each element can be accessed using variable. }>다음은 이 방법의 예입니다.
자바 // Java Program to Iterate over a List // using enhanced for loop (for-each) // Importing all classes of // java.util package import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an Arraylist ListmyList = 새로운 ArrayList(); // 목록에 요소 추가 // 사용자 정의 입력 myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // 반복을 위해 향상된 for 루프(for-each) 사용 for (String i : myList) { // ArrayList의 모든 요소 인쇄 System.out.println(i); } } }> 산출
A B C D>
위 방법의 복잡성:
시간 복잡도: O(n), 여기서 'n'은 목록의 크기입니다.
보조 공간: O(1), 루프 변수에 상수 공간이 사용됩니다(이 경우 i).
방법 1-C: while 루프 사용
while 루프를 사용하여 목록을 반복할 수도 있습니다. 루프 내부의 코드 블록은 조건이 true가 될 때까지 실행됩니다. 루프 변수는 다음과 같이 사용될 수 있습니다. 안 각 요소에 액세스하기 위한 인덱스입니다.
통사론:
rhel 대 센토스
while(variable>
다음은 이 방법의 예입니다.
자바 // Java Program to iterate over a List // using while loop // Importing all classes of // java.util package import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = 새로운 ArrayList(); // 목록에 요소 추가 // 사용자 정의 입력 myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // 모든 변수를 0으로 초기화 int i = 0; // 변수 값이 // List의 크기를 나타내는 값보다 작은 경우 while (i< myList.size()) { // Print element of list System.out.println(myList.get(i)); // Increase variable count by 1 i++; } } }> 산출
A B C D>
위 방법의 복잡성:
시간 복잡도: O(n), 여기서 'n'은 목록의 크기입니다.
보조 공간 : O(1), 루프 변수에 상수 공간이 사용됩니다(이 경우 i).자바는 while 루프를 수행합니다.
방법 2: 반복자 사용
반복자는 컬렉션의 요소를 반복할 수 있는 Java의 개체입니다. 목록의 각 요소는 while 루프가 있는 반복기를 사용하여 액세스할 수 있습니다.
통사론:
Iterator variable = list_name.iterator();>
다음은 이 방법의 예입니다.
자바 // Java Program to iterate over the list // using iterator // Importing all classes of // java.util package import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = 새로운 ArrayList(); // 목록에 요소 추가 // 사용자 정의 입력 myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // 반복자 반복자그것은 = myList.iterator(); // List의 요소에 대한 조건 검사 // List에 단일 요소가 있을 때까지 true를 반환하는 hasNext() 메서드 사용 while (it.hasNext()) { // List의 모든 요소 인쇄 System.out.println(it .다음()); } } }> 산출
A B C D>
위 방법의 복잡성:
시간 복잡도: O(n), 여기서 'n'은 목록의 크기입니다.
보조 공간: O(1), 루프 변수에 상수 공간이 사용됩니다(이 경우 i).
방법 3: 목록 반복기 사용
ListIterator는 1.2 버전부터 사용 가능한 Java의 반복자입니다. 이를 통해 List 구현 객체에서 요소를 하나씩 반복할 수 있습니다. while 루프를 사용하여 목록을 반복하는 데 사용됩니다.
통사론:
ListIterator variable = list_name.listIterator();>
다음은 이 방법의 예입니다.
자바 // Java program to iterate over a list // using ListIterator import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = 새로운 ArrayList(); // 목록에 요소 추가 // 사용자 정의 입력 myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // 리스트 반복자 ListIterator그것은 = myList.listIterator(); // List에 요소가 있는지 조건 확인 // List에 단일 요소가 있을 때까지 true를 유지하는 hasNext() 사용 while (it.hasNext()) { // List의 모든 요소 인쇄 System.out.println( it.next()); } } }> 산출
A B C D>
위 방법의 복잡성:
로봇 부품
시간 복잡도: O(n), 여기서 'n'은 목록의 크기입니다.
보조 공간: O(1), 루프 변수에 상수 공간이 사용됩니다(이 경우 i).
방법 4: Iterable.forEach() 사용
이 기능은 Java 8부터 사용할 수 있습니다. 목록을 반복하는 데에도 사용할 수 있습니다. 반복은 다음을 사용하여 수행할 수 있습니다. ㅏ 람다 식.
통사론:
list_name.forEach(variable->{//코드 블록})>다음은 이 방법의 예입니다.
자바 // Java Program to iterate over a List // using forEach() // Importing all classes of // java.util method import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = 새로운 ArrayList(); // 목록에 요소 추가 // 사용자 정의 입력 myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // 목록의 모든 요소를 인쇄하는 람다 표현식 myList.forEach( (temp) -> { System.out.println(temp); }); } }> 산출
A B C D>
위 방법의 복잡성:
시간 복잡도: O(n), 여기서 'n'은 목록의 크기입니다.
보조 공간: O(1), 루프 변수에 상수 공간이 사용됩니다(이 경우 i).
방법 5: Stream.forEach() 사용
stream().forEach()의 처리 순서는 정의되어 있지 않지만 forEach()의 경우에는 정의되어 있습니다. 둘 다 목록을 반복하는 데 사용할 수 있습니다.
통사론:
C의 ASCII 테이블
list_name.stream.forEach(variable->{//코드 블록})>다음은 이 방법의 예입니다.
자바 // Java Program iterating over a List // using stream.forEach() method // Importing all classes of // java.util method import java.util.*; // Class class GFG { // Main driver method public static void main(String args[]) { // Creating an ArrayList ListmyList = 새로운 ArrayList(); // 목록에 요소 추가 // 사용자 정의 입력 myList.add('A'); myList.add('B'); myList.add('C'); myList.add('D'); // stream.forEach() 메소드는 // List 내의 모든 요소를 인쇄합니다. myList.stream().forEach( (temp) -> System.out.println(temp)); } }> 산출
A B C D>
위 방법의 복잡성:
시간 복잡도: O(n), 여기서 'n'은 목록의 크기입니다.
보조 공간: O(1), 루프 변수에 상수 공간이 사용됩니다(이 경우 i).
방법 6: Spliterator 사용(Java 8 이상)
Java 8은 다음을 도입했습니다. 분할기 분할 반복자를 나타내는 인터페이스입니다. 이는 보다 병렬 친화적인 방식으로 요소를 반복하는 방법을 제공합니다. Spliterator는 목록과 같은 컬렉션을 포함하여 다양한 소스에서 얻을 수 있습니다. Spliterator의 forEachRemaining 메소드는 나머지 모든 요소를 순차적으로 탐색하는 데 사용됩니다.
통사론:
Spliterator spliterator = myList.spliterator();>
다음은 이 방법의 예입니다.
자바 // Java Program iterating over a List // using Spliterator import java.util.List; import java.util.Spliterator; public class ListIteration { public static void main(String[] args) { // List of String ListmyList = List.of('A', 'B', 'C','D'); // 분할기 사용하기 Spliterator분할기 = myList.spliterator(); Spliterator.forEachRemaining(System.out::println); } }> 산출
A B C D>
위 방법의 복잡성:
시간 복잡도: O(n), 여기서 'n'은 목록의 크기입니다.
보조 공간: O(log n) 또는 O(1)(Spliterator 구현의 특성에 따라 다름)