SeouliteLab

[Java/자바] 리스트를 역순으로 순회하는 3가지 방법 본문

프로그래밍

[Java/자바] 리스트를 역순으로 순회하는 3가지 방법

Seoulite Lab 2024. 3. 7. 09:03

Java에서 리스트를 역순으로 순회하는 작업은 종종 필요합니다. 이를 위해 Java에서는 여러 가지 방법을 제공하고 있습니다. 아래에서는 리스트를 역순으로 순회하는 세 가지 방법을 예제와 함께 살펴보겠습니다.

예제 1: 기본 for 루프를 사용한 역순 순회

import java.util.ArrayList;
import java.util.List;

public class ReverseTraversalExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        
        for (int i = list.size() - 1; i >= 0; i--) {
            System.out.println("요소: " + list.get(i));
        }
    }
}

위 예제는 기본적인 for 루프를 사용하여 리스트를 역순으로 순회하는 방법입니다. 리스트의 마지막 요소부터 시작하여 첫 번째 요소까지 역순으로 순회합니다.

예제 2: Iterator를 사용한 역순 순회

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class ReverseTraversalExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        
        ListIterator<String> iterator = list.listIterator(list.size());
        while (iterator.hasPrevious()) {
            String element = iterator.previous();
            System.out.println("요소: " + element);
        }
    }
}

위 예제는 Iterator를 사용하여 리스트를 역순으로 순회하는 방법입니다. listIterator() 메서드를 사용하여 리스트의 끝에서부터 시작하는 ListIterator를 생성한 후, hasPrevious() 메서드로 역순으로 요소가 있는지 확인합니다.

예제 3: Java 8 Stream API를 사용한 역순 순회

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class ReverseTraversalExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        
        List<String> reversedList = new ArrayList<>(list);
        Collections.reverse(reversedList);
        
        reversedList.forEach(element -> System.out.println("요소: " + element));
    }
}

Java 8에서는 Stream API를 사용하여 역순으로 리스트를 순회할 수 있습니다. Collections 클래스의 reverse() 메서드를 사용하여 리스트를 역순으로 만든 후, forEach() 메서드로 각 요소를 출력합니다.

예제 4: LinkedList를 사용한 역순 순회

import java.util.LinkedList;

public class ReverseTraversalExample {
    public static void main(String[] args) {
        LinkedList<String> list = new LinkedList<>();
        list.add("apple");
        list.add("banana");
        list.add("orange");
        
        for (String element : list.descendingIterator()) {
            System.out.println("요소: " + element);
        }
    }
}

LinkedList를 사용하여 리스트를 역순으로 순회하는 방법입니다. descendingIterator() 메서드를 사용하여 리스트의 역순 Iterator를 얻은 후, for-each 루프로 각 요소를 출력합니다.