logo

Java에서 목록을 반복합니다.

Java의 목록을 사용하면 순서가 지정된 개체 컬렉션을 유지할 수 있습니다. null 요소뿐만 아니라 중복 요소도 Java의 목록에 저장할 수 있습니다. 목록 인터페이스는 다음의 일부입니다. java.util 패키지이며 Collection 인터페이스를 상속합니다. 삽입 순서를 유지합니다.

Java에서 List를 반복하는 방법에는 여러 가지가 있습니다. 이에 대해서는 아래에서 설명합니다.



행동 양식:

  1. 루프 사용(순진한 접근 방식)
  2. 사용 반복자
  3. 사용 목록 반복자
  4. 람다 표현식 사용
  5. 사용 스트림.forEach()
  6. 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 구현의 특성에 따라 다름)