如果我想遍历 HashMap 中的集合:)如果我实现 a我也不太了解遍历它的两种方法,
HashMap<Integer, Elemento>
我也会用 a遍历它。我没有发现每个人的区别或它们的功能要经历我想要经历的事情。foreach()
Iterator()
元素.java
package stackoverflowejemplo;
public class Elemento {
private int numeros;
private String nombre;
public Elemento(int numeros, String nombre){
this.numeros = numeros;
this.nombre = nombre;
}
public int getNumeros() {
return numeros;
}
public void setNumeros(int numeros) {
this.numeros = numeros;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String toString(){
return getNombre() +" - "+getNumeros() ;
}
}
地图.java
import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry;
public class Mapa {
public static void main(String[] args) {
HashMap<Integer, Elemento> map = new HashMap<>();
map.put(1,new Elemento(2,"hola"));
//foreach
} }
首先,在 Java 中它
for-each()
不像其他语言那样存在。自 Java 5 以来存在于 Java 中的是enhanced for-loop
. 该语句在幕后所做的是使用迭代器来迭代集合(在数组的情况下,您不需要使用迭代器)。以下代码使用增强的 for 循环:
Java 然后将其转换为:
如果你想创建一个可以使用增强的for循环的类,你的类/接口提供一个允许你获取的方法是不够的
Iterator
,它必须实现接口Iterable
。这是一个示例(非常简化):使用上面的类,您可以使用以下代码:
离开:
我确保我打印的元素有一个方法
toString()
。然后,它foreach
确保如果您在其中toString()
的类上有一个方法Elemento.java
,您将valor
在llave(Key)
.或者这样:
然后是一个迭代器,我可以看一下这里以了解它是如何工作的,并且 lambda 表达式在此处进行了清晰的描述。