在上一节创建的集合中,想要删除某条信息:使用set.remove()

//删除花花的信息后并输出
for(Cat cat:set){   //增强型for循环if(cat.getName().equals("花花")){set.remove(cat);}
}
System.out.println("************************************");
System.out.println("删除花花后的信息为:");
for(Cat cat:set){           //使用增强型for循环进行输出System.out.println(cat);
}

输出:

删除花花后的信息为:
[姓名:凡凡, 年龄:10, 品种:中华田园猫]

其实,此时代码是有问题的,若删除“凡凡”(不是集合中的最后一条信息),便会报如下错误:

Exception in thread "main" java.util.ConcurrentModificationExceptionat java.base/java.util.HashMap$HashIterator.nextNode(HashMap.java:1584)at java.base/java.util.HashMap$KeyIterator.next(HashMap.java:1607)at java_set.CatTest.main(CatTest.java:74)

那是因为集合的长度是动态变化的,若删除后,就不会按照之前的规则进行遍历了,会打乱之前的遍历,需要在找到元素后跳出循环:

for(Cat cat:set){   //增强型for循环if(cat.getName().equals("凡凡")){set.remove(cat);break;         //找到后跳出循环}
}

删除集合中的所有信息:
使用set.removeALL(),返回值为boolean类型。

//删除集合中的所有信息boolean flag1 = set.removeAll(set);if(flag1){System.out.println("猫都不见了");}else{System.out.println("猫还在");}

输出:

猫都不见了

也可通过set.isEmpty()来判断是否全部删除:

if(set.isEmpty()){System.out.println("猫都不见了");
}else{System.out.println("猫还在");
}

删除集合中的部分信息:
当删除部分信息时,既不能使用set.remove(对象)的方法,也不能用set.removeALL(set)的方法,而需要在遍历集合前先定义一个集合,将符合条件的信息先添加到刚刚定义的集合中,再删除,具体操作如下:
为了更确定,在集合中再添加一条信息,此时集合中有三条信息:

添加花花二代后的宠物猫信息:
[姓名:凡凡, 年龄:10, 品种:中华田园猫]
[姓名:花花, 年龄:5, 品种:英国短毛猫]
[姓名:花花二代, 年龄:2, 品种:英国短毛猫]

若想删除年龄小于8的信息:

//删除集合中的年龄小于8的信息
Set<Cat> set1 = new HashSet<Cat>();
for(Cat cat:set){if(cat.getMonth() < 8){set1.add(cat);}
}
set.removeAll(set1);
System.out.println("删除年龄小于8的信息后:");
for(Cat cat:set){System.out.println(cat);
}

输出:

删除年龄小于8的信息后:
[姓名:凡凡, 年龄:10, 品种:中华田园猫]

java集合:删除集合中的信息相关推荐

  1. Java 循环删除list中指定元素

    Java 循环删除list中指定元素 1.for循环遍历删除指定元素 2.增强for循环删除指定元素 3.iterator删除指定元素 1.for循环遍历删除指定元素 List<String&g ...

  2. Java循环删除集合多个元素的正确打开方式

    首先说下不正确的打开方式: 第一:使用for循环删除集合的元素,示例代码如下 1 ArrayList<String> list = new ArrayList<String>( ...

  3. java 遍历删除list_JAVA中循环删除list中元素

    JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环).iterator遍历. 1.for循环遍历list for(int i=0;i if(list.get ...

  4. java 批量删除_Java中怎样实现批量删除操作?

    展开全部 进行编写编程代码就能实现批量删除操作. 具体代码如下: [java]  public Connection con=null; public PreparedStatement pstmt= ...

  5. Java读取txt文件中格式化信息,显示到JTree中

    1.效果 1.1 读取格式化信息  01 代表一级节点, 0101 表示01下的二级节点,其他以此类推 1.2 显示 2.操作步骤 2.1 思考 如何能够做到能够做到,在向txt文件中追加信息时,不论 ...

  6. JAVA之删除数组中某个元素值

    1.删除数组中某个元素值.[1,4,6,9,13,16,19,28,40,100]  打开记事本,写如下一段代码: import java.util.*; public class DeleteEle ...

  7. java循环删除集合数据_java中循环的几种方式以及删除集合中的指定数据

    一.for //for循环中删除数据 -- 方法有漏洞 private static void deleteAtFor() { ArrayList array = new ArrayList<& ...

  8. JAVA之删除集合数据

    package ArrayTest;import java.util.ArrayList;public class ArrayListTest2 {/*** 需求: 创建一个存储String的集合,内 ...

  9. Java识别获取pdf中文字信息(此方法任意pdf的信息都可以拿到)

    一.举例需求(拿较难的发票识别举例) 平时工作或者开发过程中如果遇到需要识别pdf发票中信息的情况,如获取发票代码号码,开票日期,校验码等,比如下面的发票,项目中需要读取发票中信息 二.方法原理 使用 ...

  10. java 级联删除_JavaEE中的级联删除讲解级源码

    我们在做项目开发的时候,一定会遇到多个表之间相关联的情况,在这种情况下,我们如果想要删除其中的某个表中的数据,就要连同其他表中与之对应的数据删除.例如:我们设计一个客户表,一个订单表,一个订单明细表. ...

最新文章

  1. 安卓禁止ScrollView内的控件改变之后自动滚动
  2. Angular @Effect监听指定Action类型的实现原理
  3. xmind可以画流程图吗_新娘妆可以自己画吗?临夏化妆学校告诉你答案!
  4. java http 下载文件_JAVA通过HttpURLConnection 上传和下载文件的方法
  5. MySql 清空、删除、截断表时1701错误
  6. 利用JSP编程技术实现一个简单的购物车程序
  7. (已更新)漫画小程序更新修复接口,自动采集资源,漫画源码漫画小程序源码简单即可发布
  8. 51单片机带闹钟c语言程序,51单片机定时闹钟程序(带按键)
  9. LaTeX 学位论文排版 章节目录设置
  10. 流程图设计(泳道图 | 任务流程图 | 页面流程图)
  11. 电脑上怎么截图按什么键?电脑截图的快捷键是什么?
  12. win10升级助手_不用QQ也能电脑远程,win10这功能太良心了!真后悔晚发现
  13. FIL新一轮上涨:FIL算力通证迎来新热潮
  14. 如何使用JavaScript来判断用户设备类型
  15. CNN 卷积神经网络-- 残差计算
  16. 数学运算符号的英文表达
  17. 古人教你怎样识人不走眼
  18. cv2绘图 cv.line(),cv.circle(),cv.rectangle(),cv.ellipse(),cv.putText() python
  19. 重磅!阿里版本【ChatGPT】开放测评!
  20. Arcgis中怎么进行遥感影像的标准分幅

热门文章

  1. 如何选择一家好的java培训?
  2. RESTful风格的更新和删除遇到的问题
  3. 【硅谷问道】Chris Lattner 访谈录(下)
  4. 揭秘:黑客经济是如何运行的
  5. 程序员为什么要学习数据结构与算法?
  6. HTML5微信支付和微信公众号内微信支付(VUE)
  7. 实例编程iPhone 录音和播放(收藏)
  8. CKEDitor支持WORD格式的缩进问题
  9. 五条高级为人处世艺术
  10. 老干妈现状与未来的运营破局可能