首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Iteratorremove方法可保证集合安全地删除对象,而在迭代期间不能直接删除集合元素

Iterator 支持集合安全地删除对象,只需在 Iterator 上调用remove()即可。...有些集合不允许在迭代时删除或添加元素,但是调用 Iterator remove() 方法是个安全做法。 那么为什么用Iterator删除时是安全呢?...现在我们回到最初问题,为什么用list直接删除元素迭代器会报错?...在他remove函数可以看到下面的一句话,首先其实还是调用了ArrayListremove函数 ArrayList.this.remove(lastRet) 但是在调用完该函数后,他又进行了如下操作...所以这就解释了标题所提出问题,还有值得注意一点是对于add操作,则在整个迭代器迭代过程是不允许。 其他集合(Map/Set)使用迭代器迭代也是一样。

5.8K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java入门提高篇】Day7 Java内部类——局部内部类

    局部内部类有以下特性: 局部内部类只能在代码代码块、方法体内和作用域中使用。 局部内部类同样可以无限制调用外部类方法和属性。 可以使用abstract修饰,声明为抽象。   ...通过这段玩具代码,可能无法理解为什么java要出现这样限制这么多而且挺复杂东西。...让我们来看看之前栗子:Java回调   这里把代码复制过来: public class TimePrinter implements ActionListener { @Override...接口对象,而这个对象仅仅在该方法中使用了一次,这时候内部类优势就体现出来了,把封装在方法不向外界提供任何冗余信息: public class Test { public static...我们都知道,java是不能实现多继承,接口也正是为了对多继承补充完善给出方案。

    609100

    11 - JavaSE之GUI

    GUI 各种元素(如:窗口,按钮, 文本框等)由 Java 来实现。 使用 AWT 所涉及一般在 java.awt 包及其子包。...Panel() // 使用默认布局管理器初始化。 Panle(LayoutManager layout) // 使用指定布局管理器初始化。 Panel 拥有其父继承来一些常用成员方法。...在 Button 对象有 ActionEvent 事件对象产生时候,自动调用 MyMonitor对象实现 ActionListener 接口函数actionPerformed 方法 示例: import...ActionListener 接口定义有方法: public void actionPerformed(ActionEvent e); 实现该接口要在该方法添加处理该事件(Action)语句。...事件时,会生成一个 ActionEvent 对象,该对象作为参数传递给 ActionListener 对象 actionPerformed 方法方法可以获取该对象信息,并作出相应处理。

    1.9K50

    Java进阶09 事件响应

    GUI图形元素需要增加事件响应(event handling),才能得到一个动态图形化界面。 ? 元素, 事件, 监听器 我们在GUI一文中提到了许多图形元素。...有一些事件(Event)可能发生在这些图形元素上,比如: 点击按钮 拖动滚动条 选择菜单 Java事件使用对象表示,比如ActionEvent。每个事件有作用图形对象,比如按钮,滚动条,菜单。...我们将动作放在一个监听器(ActionListener),然后让监听器监视(某个图形对象)事件。当事件发生时,监听器动作随之发生。 ?...这样做是为了让监听器能更方便调用图形对象成员,比如setBackground()方法ActionListeneractionPerformed()方法必须被覆盖。该方法包含了事件对应动作。...该方法参数为事件对象,即监听ActionEvent类型事件。ActionEvent是一个高层Java会找到图形对象(按钮)会发生典型事件(点击)作为事件。

    1.2K80

    JAVA贪吃蛇小游戏源代码系列

    F盘相应路径下,在运行程序时候需要将图片和音乐保存到自己本地磁盘路径,然后在程序改变路径。...* 程序启动界面包括背景图片和进入运行界面的Button,点击按钮之后程序关闭启动界面进入到运行界面, * 运行界面设置在SnakeGame,Test大体设置了运行界面的大小可见与否等。...java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import...* 主要实现原理是定义一个新界面的,作为运行界面,然后定义一个关掉启动界面的方法,然后在监听器事件, * 调用关掉界面的方法,实例化运行界面 */ @Override public void...* 同时可以获得蛇身上x和y点坐标,和颜色 */ import java.awt.Color; public class SnakeNode { //定义蛇身集合各个元素点,x,y。

    59410

    java函数式接口(lambda表达式)

    Java8新特性 Java8新特性主要是lambda表达式和流,它是推动 Java 8 发布最重要新特性,允许把函数作为一个方法参数(函数作为参数传递进方法)使用 Lambda 表达式可以使代码变更加简洁紧凑...:流是支持数据处理操作源生成元素序列,源可以是数组、文件、集合、函数。...Java 程序员在使用集合时,一个通用模式是在集合上进行迭代,然后处理返回每一个元素 List接口中stream()函数 default Stream stream() { return...} 打印结果: 1232 435345 657868 stream.filter一般适用于list集合集合查询想要数据 list.stream().forEach(System.out::println...需要注意是,虽然这是一个方法,但不需要在后面加括号,因为这里并不调用方法。我们只是提供了和 Lambda 表达式等价一种结构,在需要时才会调用

    36710

    java课程设计(简易计算器)源代码 JAVA 源代码有解析 免费分享

    ③单击计算器上函数按钮可以计算出相应函数值。 ④单击计算器上等号(=)按钮显示计算结果。 ⑤在一个文本框显示当前计算过程,在一个文本区显示以往计算过程。...⑥单击“保存”按钮可以将文本区显示全部计算过程保存到文件:单击“复制”按钮可以将文本区中选中文本复制到剪贴板单击“清除”技钮可以清除文本区全部内容。 注意事项: 一....含有main方法该类开始执行。同样也负责(退格,=,归零,. ,+/-,sin)按钮创建。 SymbolButton.java 负责(+,-,*,/)四个运算符号按钮创建。...OperateSin.java.java 负责用户点击(Sin)按钮时事件处理。 三:涉及知识点 12. 基本数据类型与数组。 13. 运算符,表达式和语句。 14. 与对象。 15....内部类与异常。 18. 常用String。 19. 组件及事件处理。 20. 输入与输出流。 21. Linked List基本用法。

    3.2K40

    java arraylist遍历_java 遍历arrayList四种方法

    通过添加和删除元素,就可以动态改变数组长度。 工具/原料 Java 方法/步骤 1 一.优点 1。支持自动改变大小功能 2。可以灵活插入元素 3。...”); 结果为aaabcde 5 3.publicvirtualvoidInsertRange(intindex,ICollectionc); 将集合某个元素插入ArrayList指定索引处 ArrayListaList...,intcount); ArrayList移除一定范围元素。...Count是ArrayList实际包含元素数。Capacity总是大于或等于Count。如果在添加元素时,Count超过Capacity,则该列表容量会通过自动重新分配内部数组加倍。...如果不向列表添加元素,则此方法可用于最小化列表内存系统开销。 若要完全清除列表所有元素,请在调用TrimToSize之前调用Clear方法

    60620

    TextField和Graphics

    与该事件对应事件java.awt.event.ActionEvent 用来处理ActionEvent事件是实现了java.awt.event.ActionListener接口对象,ActionListener...接口定义有方法: public void actionPerformed(ActionEvent e) 实现该接口要在该方法添加处理该事件(Action)语句 使用addActionListener...对象actionPerformed方法方法可以获取该对象信息,并做相应处理 import java.awt.*; import java.awt.event.*; public class TFActionEvent...,我需要将TFFrametf相关信息传到TFActionListener,这样才能使用tf对象一些方法,比方说获取其文本框内容,修改其文本框内容等等,但是tf是另一个对象,并不是TFActionListener...对象,如何获取呢?

    90320

    AWT常用组件

    TextField 构造方法有4种重载形式,通过给参数赋值,可以设置文本框初始文本字符,以及文本框列数。TextField构造方法见表。...单选按钮组实现(结合使用CheckboxGroup) 单选按钮是一种输入信息组件,拥有“状态”特性,通过鼠标单击单选按钮操作可以将其状态“true” 更改为“false”,或“false”...此后,调用成员方法 add(Sring item)添加选项 item;默认情况下,添加第一个项将成为选定项。 Choice常用成员方法与选项增、删、选等有关。...Choice常用成员方法 成员方法 描述 void add(String item) 将一个选项添加到 Choice 下拉列表 String getltem(int index) 获取 Choice...它构造方法有3种重载形式,通过参数赋值可以指定列表项数目,以及是否允许进行多项选择。无论哪种形式构造方法,创建都是空白列表。此后,调用成员方法add()添加选项。

    9510
    领券