关于list中移除某种数据类型的方法
2018-06-18 00:34:37来源:未知 阅读 ()
众所周知,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下标进行操作的就要注意了(当年的我就是。。。说不定能帮到陷入此坑的初学者)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 数据结构:用实例分析ArrayList与LinkedList的读写性能 2020-06-04
- 常用API - Scanner、Random、ArrayList 2020-05-31
- 读了这一篇,让你少踩 ArrayList 的那些坑 2020-05-29
- JAVA 每次从List中取出100条记录 2020-05-27
- 怎么自学JAVA开发? 2020-05-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash