Java에서 링크 된 목록을 통해 반복

Rashmi Patidar 2023년10월12일
  1. Java에서for루프를 사용하여 링크 된 목록 반복
  2. Java의 향상된for루프를 사용하여 링크 된 목록 반복
  3. while루프를 사용하여 연결된 목록을 반복합니다
  4. Java에서Iterator클래스를 사용하여 링크 된 목록 반복
  5. Java 8 Streams를 사용하여 링크 된 목록 반복
Java에서 링크 된 목록을 통해 반복

연결 목록은 데이터 요소의 선형 및 정렬 된 모음입니다. 요소의 배열은 메모리의 유비쿼터스 또는 임의의 위치에 있습니다. 연결된 목록 데이터 구조는 노드를 사용하여 연결됩니다. 노드는 시퀀스에서 다음 요소의 메모리 위치 인 데이터 필드 및 참조 링크를 보유합니다.

연결 목록 요소를 연속되지 않은 메모리 위치에 저장하고 마지막 노드에는 널 참조에 대한 포인터가 포함됩니다.

연결 목록을 반복하는 방법에는 여러 가지가 있습니다. 아래에 언급 된 몇 가지 방법이 있습니다.

Java에서for루프를 사용하여 링크 된 목록 반복

LinkedList클래스는 아래 코드 예제에서new키워드를 사용하여 인스턴스화됩니다. LinkedList클래스의add()메소드는 목록에 요소를 추가합니다. add메소드는이 목록의 끝에 지정된 요소를 추가합니다. 이 메소드는addLast메소드와 동일합니다. 요소가 목록에 성공적으로 추가되면 메서드는true를 반환합니다.

목록을 만든 후 반복을 위해for루프를 사용합니다. 아래 코드에서int i=0은 카운터 변수의 인스턴스화입니다. 변수가 목록의 크기보다 작아야 함을 나타내는 조건을 사용하십시오. 그리고 목록의 크기는size()메소드를 사용하여 계산됩니다. 마지막으로 변수 값은 1 씩 증가합니다. 이 완전한 프로세스는 변수 값이 목록의 크기보다 커질 때까지 실행됩니다.

package linkedList;

import java.util.LinkedList;

public class IterateLinkedListUsingForLoop {
  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("First");
    list.add("Second");
    System.out.println("Iterating the list using for-loop");
    for (int i = 0; i < list.size(); i++) {
      System.out.println(list.get(i));
    }
  }
}

위 프로그램은 아래와 같이 출력을 생성합니다.

Iterating the list using for-loop
First
Second

Java의 향상된for루프를 사용하여 링크 된 목록 반복

향상된for루프는for-each루프라고도하며for루프의 한 유형입니다.

아래 코드에서 연결 목록 개체를 인스턴스화해야합니다. 그런 다음 일부 요소 (예 : String 개체)를 추가해야합니다. 이제 반복을 위해이 경우for-each를 사용합니다.

package linkedList;

import java.util.LinkedList;

public class IteratingLinkedListUsingForEach {
  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("First");
    list.add("Second");
    for (String temp : list) {
      System.out.println(temp);
    }
  }
}

프로그램의 출력은 첫 번째 프로그램의 출력과 동일합니다.

while루프를 사용하여 연결된 목록을 반복합니다

인스턴스화 및 리스팅 프로세스에 요소 추가는 언급 된 모든 방식에서 유사합니다.

아래 예에서 카운터 변수 값은while루프 외부에서 0으로 인스턴스화됩니다. while루프 구문은 인스턴스화 할 위치가 없습니다. 이제 조건을 적용하십시오. 이것은 변수가 주어진 목록의 크기보다 작은 지 확인합니다. true를 반환하고println()함수가 실행됩니다. 그 후에 카운터 변수를 증가시켜야합니다. 변수가 목록 크기보다 커질 때까지 프로세스가 반복됩니다.

package linkedList;

public class IteratingLinkedListUsingWhileLoop {
  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("First");
    list.add("Second");
    int i = 0;
    while (i < list.size()) {
      System.out.println(list.get(i));
      i++;
    }
  }
}

Java에서Iterator클래스를 사용하여 링크 된 목록 반복

IteratorCollections객체의 루핑에 대해 작동하는 클래스입니다. 이들은Array,ArrayList,LinkedList등입니다. 컬렉션 객체를 반복하므로이를반복자라고합니다. Collections객체를 반복하려면 Iterator 클래스의 메서드를 사용해야합니다.

iterator()메소드를 사용하여 모든 컬렉션에 대한Iterator를 가져옵니다. hasNext메소드는 목록에 추가 요소가 있는지 확인합니다. 반복에 더 많은 요소가 있으면true를 리턴합니다.

next메소드는 루프의 다음 요소를 가져옵니다. 반복에서 다음 현재 객체를 반환하고 목록에 요소가 없으면NoSuchElementException을 발생시킵니다.

아래 코드는 Iterator 클래스와 그 메서드를 보여줍니다.

package linkedList;

public class IteratingLinkedListUsingIterator {
  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("First");
    list.add("Second");
    Iterator<String> iterator = list.iterator();
    while (iterator.hasNext()) {
      System.out.println(iterator.next());
    }
  }
}

Java 8 Streams를 사용하여 링크 된 목록 반복

stream은 항상Collection객체 위에 형성됩니다. 아래 프로그램에서 우리는stream메소드를 사용합니다. 함수는 스트림 함수 체인에 적용됩니다. forEach터미널작업입니다. 이것은 터미널 기능 후에는 어떤 작업도 수행 할 수 없음을 의미합니다. consumer스트림을 사용하며이 스트림은 요소를 방출하지 않고 소비합니다.

아래 코드는 Java 8 스트림의 사용과 목록을 반복하는 기능을 보여줍니다.

package linkedList;

public class IteratingLinkedListUsingStreams {
  public static void main(String[] args) {
    LinkedList<String> list = new LinkedList<>();
    list.add("First");
    list.add("Second");
    list.stream().forEach((element) -> { System.out.println(element); });
  }
}
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

관련 문장 - Java List