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