Jac*_*nte 4 java collections loops list
我正在寻找一种干净简单的方法来迭代两个直接相关的 ArrayList,因为一个的每个索引映射到另一个(关系)的索引。
目前,我通过一个简单的for循环来完成它,我尝试研究 lambdas 和for-each循环,但没有看到将它同时应用于两个大小相同的列表的方法。
第一个列表: ["Blue", "Red", "Green"]
第二个列表: ["Sky", "Roses", "Grass"]
for(int i = 0; i < firstList.size(); i++){
System.out.println(firstList.get(i) + " " + secondList.get(i));
}
Run Code Online (Sandbox Code Playgroud)
结果:
Blue Sky
Red Roses
Green Grass
Run Code Online (Sandbox Code Playgroud)
有没有办法使用 lambda 或for-each循环同时有效地迭代两个列表以避免使用for循环?
你所拥有的已经非常高效(假设你使用的是 ArrayList),简洁易读。但是,这种类型的场景:
我正在寻找一种干净简单的方法来迭代两个直接相关的 ArrayList,因为一个的每个索引映射到另一个(关系)的索引。
在您的情况下,通常需要一个定义关系的类:
public class MyC {
private final String color;
private final String object;
public MyC(String color, String object) {
this.color = color;
this.object = object;
}
public String getColor(){
return color;
}
public String getObject(){
return object;
}
@Override
public String toString() {
return "MyC{" +
"color='" + color + '\'' +
", object='" + object + '\'' +
'}';
}
}
Run Code Online (Sandbox Code Playgroud)
那么这两个列表将成为一个:
List<MyC> list = List.of(new MyC("Blue", "Sky"), new MyC("Red", "Roses"), new MyC("Green", "Grass") );
Run Code Online (Sandbox Code Playgroud)
然后你可以使用:
list.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |