【Java】【36】删除List中的几行数据

正文:

方法一:list.subList(from, to).clear(); (注意不要超出list的长度范围)

删除list中的前两行数据

@Test
public void test() {
    List<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("d");
    list.subList(0, 2).clear();
    list.add("new");
    System.out.println("list:" + list);
}

结果:

list:[c, d, new]

方法二:for循环

1,删除list中的前两行数据

@Test
public void test() {
    List<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("d");
    for (int i = 0; i < 2; i++) {
        list.remove(0);
    }
    list.add("new");
    System.out.println("list:" + list);
}

结果:

list:[c, d, new]

2,删除list中的后两行数据

@Test
public void test() {
    List<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("d");
    for (int i = 0; i < 2; i++) {
        list.remove(list.size()-1);
    }
    list.add("new");
    System.out.println("list:" + list);
}

结果:

list:[a, b, new]

3,错误的方式

@Test
public void test() {
    List<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("d");
    for (int i = 0; i < 2; i++) {
        list.remove(i);
    }
    list.add("new");
    System.out.println("list:" + list);
}

结果:

list:[b, d, new]

原因:删除一行数据后,其他数据的索引会变

 

参考博客:

Java中如何移除List中前/后几个元素? - 这个名有人用不 - CSDN博客
https://blog.csdn.net/u012758599/article/details/76998198

posted @ 2019-07-30 21:19  花生喂龙  阅读(3340)  评论(0)    收藏  举报