`
静坐云端上的人
  • 浏览: 13240 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

List中的删除

    博客分类:
  • List
阅读更多
[align=left][/align]
项目中使用到List的删除方法,因此总结一下List的三种删除方法.
方法1:  remove(int index),参数是下标识,返回值是被删除的数据;删除之后下表随之变化.所以使用下标值的时候一定要考虑到删除数据下标值改变的情况.
参考下面的代码
    List list = new ArrayList();
    list.add(0);
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    list.add(5);
    list.add(6);

    Object obj1 = list.remove(1);     //remove(int index),参数是下标识,返回值是被删除的数据
    System.err.println("obj1=  "+obj1);
    System.err.println("list  ="+list);//得到的list是删除特定下标值的list
    Object obj3 = list.remove(3);     //remove(int index),参数是下标识,返回值是被删除的数据
    System.err.println("obj3=  "+obj3);
    System.err.println("list  ="+list);//得到的list是删除特定下标值的list
/*
* obj1=  1
   list  =[0, 2, 3, 4, 5, 6]
   obj3=  4
               list  =[0, 2, 3, 5, 6]
* 表示删除数据后array的下标随之变化
*/

方法2:remove(Object obj),参数是list中保存的数据,返回值是是否删除成功true or false;数据在list中删除后返回true,如果数据不在list中,那么返回false.
这中情况不需要考虑下标值,但是需要知道确切的数据.
      List list = new ArrayList();
      list.add("0");
      list.add("1");
      list.add("2");
      list.add("3");
      list.add("4");
      list.add("5");
      list.add("6");

//remove(Object obj),参数是list中保存的数据,返回值是是否删除成功true or false
      Object obj1 = list.remove("1");   
      System.err.println("obj1=  "+obj1);
      System.err.println("list  ="+list);//得到的list是删除特定下标值的list
      Object obj3 = list.remove("3");   
      System.err.println("obj3=  "+obj3);
      System.err.println("list  ="+list);//得到的list是删除特定下标值的list
      Object obj7 = list.remove("7");   
      System.err.println("obj7=  "+obj7);
      System.err.println("list  ="+list);//得到的list是删除特定下标值的list
/*
obj1=  true
list  =[0, 2, 3, 4, 5, 6]
obj3=  true
list  =[0, 2, 4, 5, 6]
obj7=  false
list  =[0, 2, 4, 5, 6]
*/

方法3:removeAll(Collection c) 参数是collection,返回值是boolean类型.
如果c是list中的一部分,那么list将这部分数据删除掉;如果c中的数据只有一部分在list中,那么删除list中存在的这部分.可以用来取得两个list的合集;如果list中不存在c中的数据,那么返回false;如果c是不是list类型,那么无法删除.
    List list = new ArrayList();
list.add(0);
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);

List list1 = new ArrayList();
list1.add(1);
list1.add(2);
list1.add(3);

List list2 = new ArrayList();
list2.add(9);
list2.add(2);
list2.add(3);
//list1中的数据在list中都存在
boolean flag = list.removeAll(list1);
System.err.println("list  ="+list);
System.err.println(flag);
// list  =[0, 4, 5, 6]
// true

//list2中数据list中只有一部分,那么只删除有的那部分,那么可以去掉1个集合中重合的一部分,
// boolean flag = list.removeAll(list2);
// System.err.println("list  ="+list);
// System.err.println("list2  ="+list2);
// System.err.println(flag);
// list  =[0, 1, 4, 5, 6]
// list2  =[9, 2, 3]
// true

// List list4 = new LinkedList();
// list4.add("1");
// list4.add("4");
// list4.add("6");
// boolean flag = list.removeAll(list4);
// System.err.println("list  ="+list);
// System.err.println("list4  ="+list4);
// System.err.println(flag);
// list  =[0, 1, 2, 3, 4, 5, 6]
// list4  =[1, 4, 6]
// false
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics