显示一个类里面的main函数
public static void main(String[] args) {
int id;
double distance = 0;
int[] sequence = new int[100];
double[][] vertex = new double[100][];
for(int i=0;i<100;i++){
id = (int)(Math.random()*100);
sequence[i] = id;
for(int j=0;j<i;j++){
if(sequence[j]!=sequence[i])
;
else  
i--;
}
vertex[i] = TxtToArray.getCityLocation(sequence[i]);
//distance = distance+Math.sqrt((city[(i+1)%99][1]-city[i][1])*(city[(i+1)%99][1]-city[i][1])+(city[(i+1)%99][2]-city[i][2])*(city[(i+1)%99][2]-city[i][2]));
}
System.out.println(Arrays.toString(sequence));
System.out.println(vertex);
//System.out.println(distance);
}
然后是main方法里用到的TxtToArray类里面的方法getCityLocation
public static double[] getCityLocation(int id) {
double[] citys = getAllCitys();
double[] city = new double[3]; 
int j = 0;
for(int i=id*3-3; i<3*id; i++) {
city[j] = citys[i];
j++;
}
return city;
} public static double[] getAllCitys() {
BufferedReader read = null;
StringBuffer strbuf = new StringBuffer("");
String str = "";
try {
read = new BufferedReader(
new InputStreamReader(
new FileInputStream("tsp101.txt")));
if((str = read.readLine()) != null) {
strbuf.append(str);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String strbuf2 = new String(strbuf);
String[] strCitys = strbuf2.split("\\s+");
double[] citys = new double[strCitys.length];
for(int i=0; i<strCitys.length; i++) {
String strCity = strCitys[i];
citys[i] = Double.parseDouble(strCity);
}
return citys;
}
其中txt文件内容格式是类似1 234.5 987.9 2 23.5 32.6,三个为一组,第一个是cityid,第二个是x坐标,第三个是y坐标。
单独运行txttoarray类的时候没有问题,但从main方法中调用的时候出了问题,我怀疑是处理数组的时候出了问题,但不会改,请大家帮忙改改。