使用ArrayList方法subList注意
你猜
阅读:681
2021-04-01 11:14:51
评论:0
1.subList方法返回的只是原list的视图不是新建List,所有操作sublist返回的List时要注意不要修改原List
public class ListTest {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
List<String> subList = list.subList(2, 4);
subList.remove("c");
System.out.println(list);
System.out.println(subList);
}
}
2.这样既可
public class ListTest {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
List<String> subList = list.subList(2, 4);
//创建新的list
List<String> list2 = new ArrayList<>(subList);
boolean remove = list2.remove("c");
System.out.println(list);
System.out.println(list2);
}
}
3.大量调用sublist
public class ListTest {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("");
for (int i = 0; i < 50000; i++) {
list = list.subList(0, 1);
}
System.out.println(list.size());
list.add("test");
}
}
4.改正
public class ListTest {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("");
for (int i = 0; i < 50000; i++) {
list = new ArrayList<>(list.subList(0, 1));
}
System.out.println(list.size());
list.add("test");
}
}
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。