logo

Java에서 ArrayList 반복

ArrayList는 다음의 일부입니다. 수집 프레임워크 java.util 패키지에 있습니다. 이는 Java에서 동적 배열을 제공합니다. 하지만 표준 배열보다 느릴 수 있지만 배열에서 많은 조작이 필요한 프로그램에서는 도움이 될 수 있습니다. 이 클래스는 다음에서 찾을 수 있습니다. java.util 패키지.

Java 버전의 도입 및 업그레이드를 통해 Java8의 지각적 람다 표현식과 스트림 개념이 Java 버전 8에 도입되기 전에는 사용할 수 없었던 것처럼 새로운 메소드를 사용할 수 있게 되었습니다.



행동 양식:

이진 트리 우편 주문 순회
  1. for 루프 사용
  2. 동안 사용
  3. for-each 루프 사용
  4. 반복자 사용
  5. 람다 표현식 사용(Java8 이후에만 해당)
  6. 열거 인터페이스 사용

세 가지 방법을 시작하는 것은 단순히 순진한 접근 방식이고 이후의 방법에는 일부 최적화가 포함되어 있음을 바로 인식할 수 있는 이러한 방법에 대해 논의하겠습니다. 여기에서는 순회 요소가 더 적지만 일반적으로 삽입할 요소의 크기가 큰 경우에만 순진한 접근 방식을 통해 반복하는 경향이 있으며 최적의 접근 방식을 사용한다는 점을 기억하세요. 위의 각 접근 방식을 빠르게 마무리해 보겠습니다.

방법 1: for 루프 사용



자바
// Java program to iterate over an ArrayList // Using for loop // Importing all utility classes  import java.util.*; // Main class  class GFG {    // Main driver method   public static void main(String[] args)  {  // Creating and initializing the ArrayList  // Declaring object of integer type   List 숫자 = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // for 루프를 사용하여 반복 for (int i = 0; i< numbers.size(); i++)     // Printing and display the elements in ArrayList   System.out.print(numbers.get(i) + ' ');   } }>

산출
1 2 3 4 5 6 7 8>

방법 2: while 루프 사용

자바
// Java Program to Illustrate ArrayList // Using While Loop // Importing required classes import java.util.ArrayList ; // Main class public class GFG {  // Main driver method  public static void main(String[] args)  {  // Creating and initializing the ArrayList  // Declaring object of integer type  ArrayList al = 새로운 ArrayList ();  // ArrayList에 요소 추가 // add() 메서드 사용 al.add(3);  al.add(1);  al.add(7);  al.add(20);  al.add(5);  // 1단계: 변수 설정 및 초기화 // while 루프 구문에 따라 // 초기 선언 및 int val = 0;  // 2단계: 조건 // 카운터 변수가 ArrayList의 크기보다 작아질 때까지 // while (al.size()> val) { // 위의 요소를 인쇄합니다. // 조건 true System.out.println(al .get(발));  // 3단계: // 각 반복마다 카운터를 증가시켜 조건을 종료합니다. val++ ;  } } }>

산출
3 1 7 20 5>

방법 3: 각 루프에 사용

자바
// Java Program to Iterate over Arraylist // using for Each loop // Importing all utility classes import java.util.*; // Main class class GFG {  // Main driver method  public static void main(String[] args)  {  // Declaring and initializing ArrayList  List 숫자 = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // ArrayList를 반복하기 위한 For Each 루프 for (Integer i : 숫자) // ArrayList의 요소 인쇄 System.out.print(i + ' ');  } }>

산출
1 2 3 4 5 6 7 8>

방법 4: 반복자 사용



자바
// Java program to iterate over an ArrayList // Using Iterator // Importing all utility classes import java.util.*; // Main class class GFG {  // Main driver method  public static void main(String[] args)  {  // Declaring and initializing ArrayList  List 숫자 = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // Iterator를 사용하여 ArrayList 반복 Iterator it = number.iterator();  // 목록에 단일 요소가 남을 때까지 // true를 유지합니다. while (it.hasNext()) // ArrayList의 요소를 인쇄합니다. System.out.print(it.next() + ' ');  } }>

산출
1 2 3 4 5 6 7 8>

방법 5: 람다 표현식 사용

자바
// Java program to iterate over an arraylist // using Iterator in Java8 with Lambda Expression  // Importing all utility classes  import java.util.*; // Main class  class GFG {    // Main driver method   public static void main(String[] args)  {  // Declaring and initializing ArrayList  // Custom input elements   List 숫자 = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8);  // 람다 표현식을 사용하여 숫자 인쇄 // 나중에 java8에서 소개되었습니다. number.forEach(number->System.out.println(number));  } }>

산출
1 2 3 4 5 6 7 8>

방법 6: 열거 인터페이스 사용

자바
// Java Program to Iterate over ArrayList elements // Using Enumeration // Importing required classes import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; // Main class class GFG {  // Main driver method  public static void main(String[] args)  {  // Creating an ArrayList  ArrayList al = 새로운 ArrayList ();  // ArrayList에 요소 추가 al.add(34);  al.add(12);  al.add(34);  al.add(23);  al.add(54);  // 열거형 객체 얻기 Enumeration e = Collections.enumeration(al);  // 요소가 존재할 때까지 while (e.hasMoreElements()) // nextElement() 메서드를 사용하여 요소를 인쇄합니다. System.out.println(e.nextElement());  } }>

산출
34 12 34 23 54>

이제 요소를 반복하는 데 사용할 수 있는 모든 방법에 대한 논의가 완료되었으므로 기사에 추가 내용이 추가되었습니다. 지금까지 우리는 입력 요소에 대해서만 순회했으며 요소를 가지고 플레이하면 순회를 본 적이 없으므로 고려하고 있습니다.

자바
// Java program to demonstrate Working of // Iterator.remove() on Arraylist // Importing utility classes import java.util.List; import java.util.ArrayList; import java.util.Iterator; // Main class public class GFG {  // Main driver method   public static void main(String[] args)  {  // Creating a List with referenceto ArrayList  List al = 새로운 ArrayList ();  al.add(10);  al.add(20);  al.add(30);  al.add(1);  al.add(2);  // Iterator.remove()를 사용하여 10보다 작은 요소를 제거합니다. Iterator itr = al.iterator();  while (itr.hasNext()) { int x = (Integer)itr.next();  만약 (x< 10)  itr.remove();  }  System.out.println('Modified ArrayList : '  + al);  } }>

산출
Modified ArrayList : [10, 20, 30]>

순회 중 항목 제거: 요소를 반복할 때 ArrayList.remove()를 사용하지 않는 것이 좋습니다. 이는 다음으로 이어질 수 있습니다. ConcurrentModificationException (인용하다 이것 이 예외가 있는 샘플 프로그램의 경우). 요소를 반복할 때 다음을 사용하는 것이 좋습니다. 반복자.제거() 방법.