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

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());
    }
}


답변