简单使用
import java.util.ArrayList;
import java.util.List;
/**
* 使用ArrayList的subList的注意事项
*/
public class ArrayListDemo {
public static void main(String[] args) {
List<String> bookList = new ArrayList<>();
bookList.add("遥远的救世主");
bookList.add("背叛");
bookList.add("天幕红尘");
bookList.add("人生");
bookList.add("平凡的世界");
List<String> luyaoBookList = bookList.subList(3, 5);
System.out.println(bookList);
System.out.println(luyaoBookList);
}
}
运行结果
修改原集合元素的值,会影响子集合
import java.util.ArrayList;
import java.util.List;
/**
* 使用ArrayList的subList的注意事项
*/
public class ArrayListDemo {
public static void main(String[] args) {
List<String> bookList = new ArrayList<>();
bookList.add("遥远的救世主");
bookList.add("背叛");
bookList.add("天幕红尘");
bookList.add("人生");
bookList.add("平凡的世界");
// 修改原集合的值
bookList.set(3,"路遥");
List<String> luyaoBookList = bookList.subList(3, 5);
System.out.println(bookList);
System.out.println(luyaoBookList);
}
}
运行结果
修改原集合的结构,会引起ConcurrentModificationException异常
在 subList 场景中, 高度注意对原集合元素个数的修改,会导致子列表的遍历、增加、
删除均会产生 ConcurrentModificationException 异常
import java.util.ArrayList;
import java.util.List;
/**
* 使用ArrayList的subList的注意事项
*/
public class ArrayListDemo {
public static void main(String[] args) {
List<String> bookList = new ArrayList<>();
bookList.add("遥远的救世主");
bookList.add("背叛");
bookList.add("天幕红尘");
bookList.add("人生");
bookList.add("平凡的世界");
List<String> luyaoBookList = bookList.subList(3, 5);
// 往原集合中添加元素
bookList.add("美好的一天从早晨开始");
System.out.println(bookList);
System.out.println(luyaoBookList);
}
}
运行结果
修改子集合元素的值,会影响原集合
import java.util.ArrayList;
import java.util.List;
/**
* 使用ArrayList的subList的注意事项
*/
public class ArrayListDemo {
public static void main(String[] args) {
List<String> bookList = new ArrayList<>();
bookList.add("遥远的救世主");
bookList.add("背叛");
bookList.add("天幕红尘");
bookList.add("人生");
bookList.add("平凡的世界");
List<String> luyaoBookList = bookList.subList(3, 5);
// 修改子集合的值
luyaoBookList.set(1, "美好的一天从早晨开始");
System.out.println(bookList);
System.out.println(luyaoBookList);
}
}
运行结果
修改子集合的结构,会影响原集合
import java.util.ArrayList;
import java.util.List;
/**
* 使用ArrayList的subList的注意事项
*/
public class ArrayListDemo {
public static void main(String[] args) {
List<String> bookList = new ArrayList<>();
bookList.add("遥远的救世主");
bookList.add("背叛");
bookList.add("天幕红尘");
bookList.add("人生");
bookList.add("平凡的世界");
List<String> luyaoBookList = bookList.subList(3, 5);
// 修改子集合的值
luyaoBookList.add("美好的一天从早晨开始");
System.out.println(bookList);
System.out.println(luyaoBookList);
}
}
运行结果