Java集合类和Map判定一个对象是否已经存在

在做项目的过程中,我们时常回遇到这样一种状况:“判定一个对象是否已经存在与Collection或Map,如果不存在于其中,就将该对象加入到Collection或Map中”。这种需求对于新手经常用下边的代码来完成:
	 List<Integer> list = new ArrayList<Integer>();
List<Integer> checkList = new ArrayList<Integer>();
for (int i = 0; i < 5; i++) {
list.add(i);
}
for (int k = 5 ; k < 7; k++) {
checkList.add(k);
}

/**
* 判定checkList中的元素是否在list中已经存在
*/
for (Integer checkNum : checkList) {

for (Integer num : list) {
//当list中不存在这个对象是就判定将这个 对象加入到list中
if (checkNum != num) {
list.add(checkNum);
}
}
}

这样做法就会报出一个异常:java.util.ConcurrentModificationException,其实这个原因很简单,就是在便利list的时候,如果这个对象不存在就加入list,那么这个for循环中list的长度其实是变化的。所以我们一般真确的做法是:
		List<Integer> list = new ArrayList<Integer>();
List<Integer> checkList = new ArrayList<Integer>();
for (int i = 0; i < 5; i++) {
list.add(i);
}
for (int k = 5 ; k < 7; k++) {
checkList.add(k);
}

/**
* 判定checkList中的元素是否在list中已经存在
*/
for (Integer checkNum : checkList) {

if (!list.contains(checkNum)) {
list.add(checkNum);
}
}

如果是Map的话就更简单了,就直接用containsKey或contaiValue就可以判定key或value是否存在于Map中了,具体做法这里就不在赘述。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值