【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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM