Java,如何将节点坐标保存到列表中

时间:2018-02-22 21:11:19

标签: java shortest-path

我正在为项目创建最短的路线计划。目前,我从.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存储到列表中? 谢谢:))

2 个答案:

答案 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.