我试图读取double的文件(81个文件),并将每个文件(16个double/file)放在double[]上,然后创建一个objet dataobject(double[],int class),我想将创建的每个dataobject示例添加到我的arraylist中,但最后,我的arraylist中有81个相同的元素,这是我读取的最后一个文件上的数据,我需要帮助。谢谢。`public static void main(string[]args){bufferedreader reader;
while (x <= 9){
try{
reader = new BufferedReader(new FileReader("C:\\Users\\pc\\Documents\\NetBeansProjects\\RF\\src\\E34\\s0"+x+"n00"+y+".E34"));
String line= reader.readLine();
while(line !=null){
try{
d[i] = Double.valueOf(line);
System.out.println(d[i] + " is a double.");
i++;
}catch(NumberFormatException e){
System.err.println("Not Double ' "+line+" '");
}
line=reader.readLine();
}
}catch(Exception ex){
System.err.println(ex.getMessage());
}
// AJOUT DE L'OBJET**************************************************************************
obj = new DataObject(d, x);
list.add(obj);
System.out.println("objet ajouté");
// REINITIALISATION du tableau d**********************************************************
i = 0;
y++;
// CONDITION SUR LES FICHIER A LIRE***********************************************************
if(y == 10){
x++; y = 1;
}
}
// LECTURE DES DONNEE*****************************************************************
for(int n = 0; n < list.size(); n++){
System.out.println(list.get(n).toStringObj());
}`
类dataobject`公共类dataobject{private double[]data;私有int类代码;
public DataObject(double[] data, int classCode) {
//assert data.length == 100; //maximum array length of 100
this.data = data;
this.classCode = classCode;
}
public String toStringObj() {
return "Class Code: " + classCode + " Data :" + Arrays.toString(data) + "\n"; //outputs readable
}
public double[] getData() {
return data;
}
public int getClassCode() {
return classCode;
}
}`
这是输入图像描述的结果
81行相同的数据,但类代码不是由9替换的。
1条答案
按热度按时间t9aqgxwy1#
谢谢各位,我在调用dataobject时找到了解决方案
obj = new DataObject(d, x);
他总是用同样的方法打电话d
,这就是为什么我有同样的结果,我尝试了obj = new DataObject(d.clone(), x);
而且很有效。