Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 리스트(List)의 요소를 교체하는 방법 – set() 메서드 완벽 가이드

이 글에서는 Java의 리스트(List)에서 특정 요소를 교체하는 방법을 자세히 살펴보겠습니다. List는 Collection을 확장(extend)하며, 여러 요소를 순서대로 저장하는 컬렉션의 동작을 정의하는 인터페이스입니다.

Collection은 객체 그룹을 저장하고 조작할 수 있는 아키텍처를 제공하는 프레임워크입니다. Java 컬렉션 프레임워크를 활용하면 검색, 정렬, 삽입, 수정, 삭제 등 데이터와 관련된 거의 모든 연산을 손쉽게 처리할 수 있습니다.

리스트의 요소를 교체할 때는 set() 메서드를 사용합니다. 먼저 입력값과 기대되는 출력 결과를 확인해 보겠습니다.

입력값

Input list : [Java, Scala, Mysql, Redshift]

원하는 출력 결과

After replacing one element of the list: [Java, Scala, Python, Redshift]

알고리즘

1단계 - 시작
2단계 - input_list라는 이름의 리스트를 선언합니다.
3단계 - 리스트에 저장할 값들을 정의합니다.
4단계 - set() 함수를 호출하고, 교체할 인덱스와 새로 넣을 문자열을 매개변수로 전달합니다.
5단계 - 결과 리스트를 화면에 출력합니다.
6단계 - 종료

예제 1: main 함수에서 직접 처리하기

첫 번째 방식은 모든 연산을 main 함수 안에서 한꺼번에 처리하는 방법입니다. 코드가 간결하여 간단한 로직을 빠르게 확인할 때 유용합니다.

import java.util.*;
public class Demo {
    public static void main(String[] args) {
        System.out.println("필요한 패키지가 모두 임포트되었습니다");
        try {
            ArrayList<String> input_list = new ArrayList<>();
            input_list.add("Java");
            input_list.add("Scala");
            input_list.add("Mysql");
            input_list.add("Redshift");
            System.out.println("정의된 리스트: " + input_list);
            input_list.set(2, "Python");
            System.out.println("\n리스트의 요소를 교체한 후: " + input_list);
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}

실행 결과

필요한 패키지가 모두 임포트되었습니다
정의된 리스트: [Java, Scala, Mysql, Redshift]

리스트의 요소를 교체한 후: [Java, Scala, Python, Redshift]

예제 2: 함수로 캡슐화하기 (객체 지향 방식)

두 번째 방식은 요소 교체 로직을 별도의 함수로 분리하여 객체 지향 프로그래밍(OOP) 스타일로 작성하는 방법입니다. 코드의 재사용성과 유지보수성이 높아져 실무에서 권장되는 구조입니다.

import java.util.*;
public class Demo {
    static void replaceElement(ArrayList<String> input_list, int index, String newValue) {
        input_list.set(index, newValue);
        System.out.println("리스트의 요소를 교체한 후: " + input_list);
    }

    public static void main(String[] args) {
        System.out.println("필요한 패키지가 모두 임포트되었습니다");
        try {
            ArrayList<String> input_list = new ArrayList<>();
            input_list.add("Java");
            input_list.add("Scala");
            input_list.add("Mysql");
            input_list.add("Redshift");
            System.out.println("정의된 리스트: " + input_list);
            replaceElement(input_list, 2, "Python");
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}

실행 결과

필요한 패키지가 모두 임포트되었습니다
정의된 리스트: [Java, Scala, Mysql, Redshift]

리스트의 요소를 교체한 후: [Java, Scala, Python, Redshift]

핵심 포인트 정리

  • set(int index, E element): 지정한 위치(index)의 기존 요소를 새로운 요소(element)로 교체하고, 교체되기 전의 요소를 반환합니다.
  • 인덱스는 0부터 시작합니다. 위 예제에서 인덱스 2는 세 번째 요소인 "Mysql"을 가리킵니다.
  • 리스트의 범위를 벗어난 인덱스를 전달하면 IndexOutOfBoundsException이 발생하므로, 반드시 유효한 인덱스를 사용해야 합니다.
  • try-catch 블록으로 감싸면 예외 발생 시 프로그램이 비정상적으로 종료되는 것을 방지할 수 있습니다.