zoukankan      html  css  js  c++  java
  • 关于list中移除某种数据类型的方法

    众所周知,list在不泛型的情况下是可以存放各种数据类型的,代码如下:

    1   public static void main(String[] args) {
    2         List list=new ArrayList<>();
    3         list.add("我是字符串");
    4         list.add(123);
    5         list.add(new HashMap<>());
    6         System.out.println(list);
    7   }

    可以得到控制台的输出结果是:

    [我是字符串, 123, {}]

    而关于list移除数据的方法,很容易百度到,例如:

     1   public static void main(String[] args) {
     2          List list=new ArrayList<>();
     3          list.add("我是字符串");
     4          list.add(123);
     5          list.add(new HashMap<>());
     6          System.out.println(list);
    7 list.remove(0);//根据下标移除 8 System.out.println(list); 9 list.remove(Integer.valueOf(123));//根据元素内容进行移除 10 System.out.println(list); 11   }

    可以得到控制台的输出结果是:

    [我是字符串, 123, {}]
    [123, {}]
    [{}]

    而我们本次是根据数据类型进行移除list中的元素,此时是不无法确定下标或元素值的,因此使用Iterator,代码如下:

     1     public static void main(String[] args) {
     2         List list=new ArrayList<>();
     3         list.add("我是字符串");
     4         list.add(123);
     5         list.add(new HashMap<>());
     6         System.out.println(list);
    7 delData(list, HashMap.class); 8 System.out.println(list); 9 delData(list, "我是字符串".getClass()); 10 System.out.println(list); 11 } 12 13 /** 14 * list清除某种类型数据 15 * @param list list本体 16 * @param classObj 要清除的数据类型 17 */ 18 public static void delData(List list,Class classObj){ 19 Iterator<Object> it=list.iterator(); 20 while (it.hasNext()) { 21 if (classObj==it.next().getClass()) { 22 it.remove(); 23 } 24 } 25 }

    可以得到控制台的输出结果是:

    [我是字符串, 123, {}]
    [我是字符串, 123]
    [123]

    最后,惯例写下一些题外话,我这次问题也是在工作中遇到的,本身其实很简单,只是想直接百度偷懒下去复制粘贴,结果几分钟了没找到类似的答案,所以就顺便写下了,说不定能帮到其他的想偷懒的,或者刚入行的java新手呢。

    再另外,说一句,list移除元素后(不管哪种方式移除),下标是动态直接变的,即后面的元素直接前移的,此时如果涉及到list下标进行操作的就要注意了(当年的我就是。。。说不定能帮到陷入此坑的初学者)

  • 相关阅读:
    DOS系统功能调用与BIOS中断调用 [转自KingofCoders]
    纯手工保护光盘数据(转)
    程序员不错的建议【转】
    初识逆向技术(转)
    Notepad++插件推荐JSMin
    jQuery Ready 与 Window onload 的区别
    Javascript typeof和instanceof判断数据类型
    浅谈Javascript 中几种克隆(clone)方式
    Javascript Array sort排序问题
    不同浏览器对display为none元素的图片处理不一样
  • 原文地址:https://www.cnblogs.com/lilh/p/9120741.html
Copyright © 2011-2022 走看看