Java에서 링크 된 목록을 통해 반복
-
Java에서
for
루프를 사용하여 링크 된 목록 반복 -
Java의 향상된
for
루프를 사용하여 링크 된 목록 반복 -
while
루프를 사용하여 연결된 목록을 반복합니다 -
Java에서
Iterator
클래스를 사용하여 링크 된 목록 반복 -
Java 8
Streams
를 사용하여 링크 된 목록 반복
연결 목록은 데이터 요소의 선형 및 정렬 된 모음입니다. 요소의 배열은 메모리의 유비쿼터스 또는 임의의 위치에 있습니다. 연결된 목록 데이터 구조는 노드를 사용하여 연결됩니다. 노드
는 시퀀스에서 다음 요소의 메모리 위치 인 데이터 필드 및 참조 링크를 보유합니다.
연결 목록 요소를 연속되지 않은 메모리 위치에 저장하고 마지막 노드에는 널 참조에 대한 포인터가 포함됩니다.
연결 목록을 반복하는 방법에는 여러 가지가 있습니다. 아래에 언급 된 몇 가지 방법이 있습니다.
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
클래스를 사용하여 링크 된 목록 반복
Iterator
는Collections
객체의 루핑에 대해 작동하는 클래스입니다. 이들은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 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