gpt4 book ai didi

java - 对于使用 Java Iterator 的每个循环

转载 作者:行者123 更新时间:2023-11-29 03:13:29 25 4
gpt4 key购买 nike

<分区>

所以我一直在查看一些我理解用于 foreach 循环的 java 代码,但它似乎过于复杂。

我有一个包含属性的 Control.java 文件。

我有一个 Controls.java 文件,它使用 Iterator 并将 Control 作为数据类型。

public class Controls implements Iterable<Control>{
protected ArrayList<Control> controls;

public Controls()
{
controls = new ArrayList<Control>();
}
public Controls(ArrayList<Control> controls)
{
this.controls = controls;
}

public ArrayList<Control> value()
{
return controls;
}

public void add(Control ctrl)
{
this.controls.add(ctrl);
}

public void add(Controls ctrls)
{
for(Control ctrl : ctrls)
{
this.controls.add(ctrl);
}
}

public void remove(Control ctrl)
{
if(this.controls.contains(ctrl))
{
this.controls.remove(ctrl);
} else
{
for (Control c: this.controls)
{
if(c instanceof ContainerControl)
{
((ContainerControl)c).controls.remove(ctrl);
}
}
}

}


public Control get(String name)
{
//stuff here
}

@Override
public Iterator<Control> iterator() {
return controls.iterator();
}
}

其他文件这样使用它:

public void dumpInstantiation(StringBuffer buf)
{
for(Control control : controls)
{
control.dumpInstantiation(buf);
}
}

据我了解,这只是一个 foreach 循环,在迭代每个控件时具有添加或删除(或调用任何其他方法)的额外好处。作为一个 Java 新手,有几个问题浮现在脑海中:

  1. 有没有更简单的方法来实现它?这是通常的做法吗?
  2. 这样做还有其他好处吗?
  3. 没有 ArrayList 和 Iterator 有没有办法做到这一点?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com