developer tip

특정 색인 뒤의 목록에서 모든 요소 제거

optionbox 2020. 12. 4. 08:07
반응형

특정 색인 뒤의 목록에서 모든 요소 제거


List / ArrayList에서 특정 인덱스 뒤에있는 List의 모든 요소를 ​​제거 할 수있는 편리한 방법이 있습니까? 제거를 위해 수동으로 반복하는 대신.

좀 더 설명하기 위해 10 개의 요소 목록이있는 경우 색인 3을 언급하고 색인 3 이후의 모든 요소가 제거되고 내 목록은 지금 시작하는 4 개의 요소로만 구성됩니다 (0부터 계산).


list.subList(4, list.size()).clear();

하위 목록 작업은 원래 목록에 반영 되므로 색인 4를 포함하는 list.size()모든 것에서 배타적 인 것, 즉 색인 3 이후의 모든 것까지 모든 것을 지 웁니다. 범위 제거는 특히 문서의 예제로 사용됩니다.

이 방법은 명시 적 범위 연산 (배열에 일반적으로 존재하는 정렬)이 필요하지 않습니다. 목록이 필요한 모든 작업은 전체 목록 대신 하위 목록보기를 전달하여 범위 작업으로 사용할 수 있습니다. 예를 들어 다음 관용구는 목록에서 요소 범위를 제거합니다.

     list.subList(from, to).clear();

sublist () 및 clear () 사용,

public class Count
{
    public static void main(String[] args)
    {
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("1");
        arrayList.add("2");
        arrayList.add("3");
        arrayList.add("4");
        arrayList.add("5");
        arrayList.subList(2, arrayList.size()).clear();
        System.out.println(arrayList.size());
    }
}

또는 하위 목록의 요소로 새 목록을 만듭니다.

List<String> newSublist = new ArrayList<>(list.sublist(0, excludedIndex));

그리고 이전 답변의 예

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

public class Main {

    public static void main(String[] args) {
        List<String> originalList = new ArrayList<>();
        originalList.add("0");
        originalList.add("1");
        originalList.add("2");
        originalList.add("3");
        originalList.add("4");

        System.out.println("Original list: " + originalList);
        List<String> viewSublist = originalList.subList(0, 2);
        System.out.println("View of the original list: " + viewSublist);

        List<String> res = new ArrayList<>(viewSublist);
        System.out.println("Sublist result - new list: " + res);

        originalList.set(1, "111"); // By changing original list, sublist view gets changed.
        System.out.println("View of the original list after changing the original list: " + viewSublist);
        System.out.println("Sublist result - new list after changing the original list - not affected: " + res);
    }
}

인쇄물:

Original list: [0, 1, 2, 3, 4]
View of the original list: [0, 1]
Sublist result - new list: [0, 1]
View of the original list after changing the original list: [0, 111]
Sublist result - new list after changing the original list - not affected: [0, 1]

https://www.geeksforgeeks.org/arraylist-sublist-method-in-java-with-examples/

참고 URL : https://stackoverflow.com/questions/22802232/remove-all-elements-from-a-list-after-a-particular-index

반응형