我正在尝试将整数存储到二维数组中。
我有Buffered Reader,它读取我的CityFile(包含城市坐标)并返回int x和y而!line.isEmpty(没问题)
我想将这2个整数(x和y)存储到多维arraylist中作为城市坐标(需要帮助) **实际上我正在尝试创建一个城市矩阵,其中包含我的cityFile(Euclidean2d)中提供的所有x和y整数。
我的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;
}
我希望我的问题很明确。如果没有,请让我知道,以便我能再说清楚。
请帮忙。 谢谢。
答案 0 :(得分:0)
在方法cityMatrix()
中,您使用的是customerMatrix
和cityMatrix
。这只是一个错字吗?试试这个方法:
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;
}