今天看到List<E> subList(int fromIndex, int toIndex);不知道用法特查看別人講解,記錄下以備日后查看。
根據注釋得知:
1,該方法返回的是父list的一個視圖,從fromIndex(包含),到toIndex(不包含)。fromIndex=toIndex 表示子list為空
2,父子list做的非結構性修改(non-structural changes)都會影響到彼此:所謂的“非結構性修改”,是指不涉及到list的大小改變的修改。相反,結構性修改,指改變了list大小的修改。
3,對於結構性修改,子list的所有操作都會反映到父list上。但父list的修改將會導致返回的子list失效。
4,tips:如何刪除list中的某段數據:
package ques; import java.util.ArrayList; import java.util.List; public class Ques0105 { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("a"); // 使用構造器創建一個包含list的列表list1 List<String> list1 = new ArrayList<String>(list); // 使用subList生成與list相同的列表list2 List<String> list2 = list.subList(0, list.size()); list2.add("b"); System.out.println(list.equals(list1)); System.out.println(list.equals(list2)); } }
運行結果
false
true
可以發現,list2為list的子list,當list2發生結構性修改(list2.add("b"))后,list也發生相應改變,所以返回結果為false和true
注此類容來源:
https://www.cnblogs.com/ljdblog/p/6251387.html