关于list中移除某种数据类型的方法
众所周知,list在不泛型的情况下是可以存放各种数据类型的,代码如下:
public static void main(String[] args) {
List list=new ArrayList<>();
list.add("我是字符串");
list.add(123);
list.add(new HashMap<>());
System.out.println(list);
}
可以得到控制台的输出结果是:
[我是字符串, 123, {}]
而关于list移除数据的方法,很容易百度到,例如:
public static void main(String[] args) {
List list=new ArrayList<>();
list.add("我是字符串");
list.add(123);
list.add(new HashMap<>());
System.out.println(list);
list.remove(0);//根据下标移除
System.out.println(list);
list.remove(Integer.valueOf(123));//根据元素内容进行移除
System.out.println(list);
}
可以得到控制台的输出结果是:
[我是字符串, 123, {}]
[123, {}]
[{}]
而我们本次是根据数据类型进行移除list中的元素,此时是不无法确定下标或元素值的,因此使用Iterator,代码如下:
public static void main(String[] args) {
List list=new ArrayList<>();
list.add("我是字符串");
list.add(123);
list.add(new HashMap<>());
System.out.println(list);
delData(list, HashMap.class);
System.out.println(list);
delData(list, "我是字符串".getClass());
System.out.println(list);
} /**
* list清除某种类型数据
* @param list list本体
* @param classObj 要清除的数据类型
*/
public static void delData(List list,Class classObj){
Iterator<Object> it=list.iterator();
while (it.hasNext()) {
if (classObj==it.next().getClass()) {
it.remove();
}
}
}
可以得到控制台的输出结果是:
[我是字符串, 123, {}]
[我是字符串, 123]
[123]
最后,惯例写下一些题外话,我这次问题也是在工作中遇到的,本身其实很简单,只是想直接百度偷懒下去复制粘贴,结果几分钟了没找到类似的答案,所以就顺便写下了,说不定能帮到其他的想偷懒的,或者刚入行的java新手呢。
再另外,说一句,list移除元素后(不管哪种方式移除),下标是动态直接变的,即后面的元素直接前移的,此时如果涉及到list下标进行操作的就要注意了(当年的我就是。。。说不定能帮到陷入此坑的初学者)
关于list中移除某种数据类型的方法的更多相关文章
- 在Pandas中更改列的数据类型【方法总结】
先看一个非常简单的例子: a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']] df = pd.DataFrame(a) 有什 ...
- 国内物联网平台(8):中移物联网开放平台OneNet
国内物联网平台(8)——中移物联网开放平台OneNet 马智 平台定位 OneNET是中移物联网有限公司搭建的开放.共赢设备云平台,为各种跨平台物联网应用.行业解决方案,提供简便的云端接入.存储.计算 ...
- 中移苏研DCOS实践之路完整篇
一.实践背景 1.1现网生产系统存在的问题 在中国移动内部各省市公司,由于技术迭代.设备更新的原因,设备繁杂,有x86server .VMware虚拟机.OpenStack虚拟机以及不同厂商的物理机( ...
- 二、 java中的变量与数据类型及类型转换
标识符:凡是可以自己命名的地方都叫标识符,如:类名.方法名.接口名... 1.标识符命名的规则: 由26个英文字母大小写,0-9,_或$组成,不遵守会报错. 不可以用数字开头. 不能使用关键字和保留字 ...
- 国内物联网平台初探(八):中移物联网开放平台OneNet
平台定位 OneNET是中移物联网有限公司搭建的开放.共赢设备云平台,为各种跨平台物联网应用.行业解决方案,提供简便的云端接入.存储.计算和展现,快速打造物联网产品应用,降低开发成本. IoT Paa ...
- 从String中移除空白字符的多种方式!?
字符串,是Java中最常用的一个数据类型了.我们在日常开发时候会经常使用字符串做很多的操作.比如字符串的拼接.截断.替换等. 这一篇文章,我们介绍一个比较常见又容易被忽略的一个操作,那就是移除字符串中 ...
- android studio 中移除module和恢复module
一.移除Android Studio中module 在Android Studio中想要删除某个module时,在Android Studio中选中module,右键发现没有delete,如图: An ...
- Sqlite3中存储类型和数据类型结合文档解析。
sqlite3是个很小的数据库,运行在手机,机顶盒上....那它就不可能像musql,sqlserver那么规范,有很多的数据类型,之前我也以为它定义了很多数据类型,其实不是他就5个存储类,那么多数据 ...
- 【python cookbook】【数据结构与算法】10.从序列中移除重复项且保持元素间顺序不变
问题:从序列中移除重复的元素,但仍然保持剩下的元素顺序不变 解决方案: 1.如果序列中的值时可哈希(hashable)的,可以通过使用集合和生成器解决.
随机推荐
- Bioinfo online workshop
http://icb.med.cornell.edu/index.html%3Fpage_id=2068.html 1. Datacamp https://www.datacamp.com/cours ...
- 如何在linux上查看tomcat的端口号
1.先到tomcat配置文件查看tomcat的端口是什么,配置文件一般是:$CATALINA_HOME/conf/server这个文件,查找<Connector port="8080& ...
- SQL Server 复制表结构以及数据,去除表中重复字段
--复制另一个数据库中的某张表的结构及数据--select * from Test.dbo.TestTable(查询表中所有数据) --into [表名] 插入当前数据库新表,如果没有该表就创建 se ...
- Oarcle之单行函数(下)
1.字符函数 ltrim 去除字符串左边指定字符,如果不设定第二个参数,则默认去除空格 rtrim去除字符串右边指定字符,如果不设定第二个参数,则默认去除空格 例如:select ltrim (‘a ...
- leetcode 1——两数之和
问题描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组 ...
- 《视觉SLAM十四讲课后作业》第一讲
1. 如何在 Ubuntu 中安装软件(命令⾏界⾯)?它们通常被安装在什么地⽅? 答:一般有两种安装方式(1)apt-get install (2)dpkg -i package.deb.系统软件一般 ...
- Bootstrap3基础 栅格系统 col-lg/md/sm/xs-* 简单示例
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- nodejs中使用crypto-js先HmacSha1加密后转Base64
1. 先HmacSha1后Base64 var HmacSha1 = require('crypto-js/hmac-sha1') ;var Base64 = require('crypto-js/e ...
- 好玩图像pil处理
pil库的学习总结 #__author:'lwq'#date: 2018/11/15 from PIL import Image,ImageFilter,ImageDraw,ImageFont ### ...
- 解决 ImportError: No module named _internal
参考: My pip is broken. _internal module cannot be imported. #5253 解决 ImportError: No module named _in ...