Java 如何同时迭代这些列表?
这就是我想要实现的目标:Java 如何同时迭代这些列表?,java,arrays,list,Java,Arrays,List,这就是我想要实现的目标: public ArrayList<Point> startPoints = new ArrayList<Point>(); public ArrayList<Point> endPoints = new ArrayList<Point>(); for (Point startPoint : startPoints) { // <-- How do I do I do 2 at
public ArrayList<Point> startPoints = new ArrayList<Point>();
public ArrayList<Point> endPoints = new ArrayList<Point>();
for (Point startPoint : startPoints) { // <-- How do I do I do 2 at the same time?
g.fillOval(startPoint .x, startPoint.y, 10, 10);
g.drawLine(startPoint .x, startPoint.y, endPoint.x, endPoint.y);
}
public ArrayList startPoints=new ArrayList();
public ArrayList endPoints=new ArrayList();
对于(点起始点:起始点){/使用索引为i
的“正常”for
// if list1 and list2 have the same length
for(int i = 0;i<list1.size();i++){
list1.get(i); // do something with that
list2.get(i); // do something else with that
}
//如果列表1和列表2的长度相同
对于(int i=0;i使用索引i
的“正常”for
// if list1 and list2 have the same length
for(int i = 0;i<list1.size();i++){
list1.get(i); // do something with that
list2.get(i); // do something else with that
}
//如果列表1和列表2的长度相同
对于(int i=0;i尝试使用normal for loop而不是foreach如果无法更改数据结构,请尝试使用normal for loop而不是foreach:
for (int i = 0; i < startPoints.size() && i < endPoints.size(); i++) {
Point startPoint = startPoints.get(i);
Point endPoint = endPoints.get(i);
g.fillOval(startPoint.x, startPoint.y, 10, 10);
g.drawLine(startPoint.x, startPoint.y, endPoint.x, endPoint.y);
}
for(int i=0;i
如果无法更改数据结构:
for (int i = 0; i < startPoints.size() && i < endPoints.size(); i++) {
Point startPoint = startPoints.get(i);
Point endPoint = endPoints.get(i);
g.fillOval(startPoint.x, startPoint.y, 10, 10);
g.drawLine(startPoint.x, startPoint.y, endPoint.x, endPoint.y);
}
for(int i=0;i
我建议,不要依赖迭代来成功保持同步,而是使用一个包含两个点的行
类。对于每个起点和终点,构造行
对象并将其插入arraylist
要将它们取出,只需按如下方式迭代:
for (Line line : lines) { // <-- How do I do I do 2 at the same time?
g.fillOval(line.getStartPoint().x, line.getStartPoint().y, 10, 10);
g.drawLine(line.getStartPoint().x, line.getStartPoint().y, line.getEndPoint().x, line.getEndPoint.y);
}
for(Line-Line:lines){/我建议不要依赖迭代来成功保持同步,而是使用一个包含两个点的Line
类。对于每个起点和终点,构造Line
对象并将其插入arraylist
要将它们取出,只需按如下方式迭代:
for (Line line : lines) { // <-- How do I do I do 2 at the same time?
g.fillOval(line.getStartPoint().x, line.getStartPoint().y, 10, 10);
g.drawLine(line.getStartPoint().x, line.getStartPoint().y, line.getEndPoint().x, line.getEndPoint.y);
}
for(Line-Line:lines){/不能同时使用“foreach”for循环执行这两项操作
如果确定两个列表的大小相同,则使用循环:
for (int i = 0; i < startPoints.size(); i++) { // <-- How do I do I do 2 at the same time?
Point startPoint = startPoints.get(i);
Point endPoint = endPoints.get(i);
g.fillOval(startPoint .x, startPoint.y, 10, 10);
g.drawLine(startPoint .x, startPoint.y, endPoint.x, endPoint.y);
}
for(int i=0;i
如果确定两个列表的大小相同,则使用循环:
for (int i = 0; i < startPoints.size(); i++) { // <-- How do I do I do 2 at the same time?
Point startPoint = startPoints.get(i);
Point endPoint = endPoints.get(i);
g.fillOval(startPoint .x, startPoint.y, 10, 10);
g.drawLine(startPoint .x, startPoint.y, endPoint.x, endPoint.y);
}
for(int i=0;i因为您的数据(startPoint和endPoint)是相关的-将它们放在另一个类(例如MyVector)中,该类将具有startPoint和endPoint成员(类型为Point)。有了这样的结构,您可以在MyVector对象列表上迭代。检查此项:检查此项: