我正在为项目创建最短的路线计划。目前,我从.cav文件中读取数据。该程序告诉我文件中有多少个洞穴(节点),并给出了每个节点的坐标。
代码:
//Get coordinates
for (int count = 1; count < ((noOfCaves*2)+1); count=count+2){
System.out.println("Cave at " + data[count] +"," +data[count+1]);
}
输出:
Cave at 2,8
Cave at 3,2
Cave at 14,5
Cave at 7,6
Cave at 11,2
Cave at 11,6
Cave at 14,1
我现在如何将这些位置作为x,y存储到列表中? 谢谢:))
答案 0 :(得分:2)
创建对象列表
public class Cave{
private int x;
private int y
Cave(int x, int y){
this.x = x;
this.y = y;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
}
然后在你的主要创建一个元素列表:
List<Cave> caves = new ArrayList<>();
Cave c1 = new Cave(2,8);
caves.add(c1);
填充列表后,只需使用每个
caves.forEach(cave -> {
System.out.println("this cave is in x:" + cave.getX()
+ " and y:" + cave.getY());
}
答案 1 :(得分:0)
很简单。您创建一个列表并添加坐标!在这种情况下,我会写一个字符串列表:
List<String> coords = new ArrayList<String>();
for (int count = 1; count < ((noOfCaves * 2) + 1); count = count + 2){
System.out.println("Cave at " + data[count] +"," + data[count + 1]);
coords.add(String.valueOf(data[count]) + "," + String.valueOf(data[count + 1]));
}
您可以使用String.split(",")
和Integer#parseInt(String)
分别获取X和Y.