JAVA将readFile中的整数分配给二维数组

时间:2014-05-02 03:37:10

标签: java arraylist

我正在尝试将整数存储到二维数组中。

  1. 我有Buffered Reader,它读取我的CityFile(包含城市坐标)并返回int x和y而!line.isEmpty(没问题)

  2. 我想将这2个整数(x和y)存储到多维arraylist中作为城市坐标(需要帮助) **实际上我正在尝试创建一个城市矩阵,其中包含我的cityFile(Euclidean2d)中提供的所有x和y整数。

  3. 我的FileReader类

    public static ArrayList  cities = new ArrayList(); 
    .
    .
    
    } else if (readingCoordinates) {
                items = line.split("(\\s)+");
                assert( cities.size() + 1 == Integer.parseInt(items[0]));
                x = Integer.parseInt(items[1]);
                y = Integer.parseInt(items[2]);
    
                City city = new City(x, y);
                addCity(city);
                .
                .
                .
                }
              }
    
    public static void addCity(City city) {
        cities.add(city);
    }
    

    我的点类

    public class City {
    
    int x;
    int y;
    
    public City (int x, int y){
        this.x = x;
        this.y = y;
    }
    public int getX(){
        return this.x;
    }
    public int getY(){
        return this.y;
    }
    
    @Override
    public String toString(){
        return getX()+", "+getY();
    }
    }
    

    然后我将该点存储在我的FileReader类中的城市的Arraylist中。 所以在我下面的城市的Arraylist中

    城市[city(x,y),city(x,y),city(x,y),....]

    我的问题在这里, 我可以在city [i] [j]

    中操纵此城市数组以创建新的Matrix [2维数组]

    我当前的代码无效,

      public double[][] cityMatrix() {
    
                double[][] cityMatrix = new double[FileReader.cities.size()][2];
    
                for (int i = 0; i < FileReader.cities.size(); i++)
                                cityMatrix[i][0] = getX();
    
                for (int i = 0; i < FileReader.cities.size(); i++)
                                cityMatrix[i][1] = getY();
    
                return cityMatrix;
        }
    

    我希望我的问题很明确。如果没有,请让我知道,以便我能再说清楚。

    请帮忙。 谢谢。

1 个答案:

答案 0 :(得分:0)

在方法cityMatrix()中,您使用的是customerMatrixcityMatrix。这只是一个错字吗?试试这个方法:

public double[][] cityMatrix() {
    double[][] cityMatrix = new double[FileReader.cities.size()][2];

    for (int i = 0; i < FileReader.cities.size(); i++){
        City c = FileReader.cities.get(i);
        cityMatrix[i][0] = c.getX();
        cityMatrix[i][1] = c.getY();
    }
    return cityMatrix;
}