arraylist同一个实例重复使用时,需要使用clear()及时清空,否则会在上次的结果后面添加项。
List<Double> weightsList = new ArrayList<Double>(); for(int i=0;i<4;i++){ fs = FileSystem.get(URI.create(statePath[i]), conf); hdfsInStream = fs.open(new Path(statePath[i])); br = new BufferedReader(new InputStreamReader(hdfsInStream)); int j = 0; while((line = br.readLine()) != null){ if(j == 0) percept = Double.parseDouble(line); else{ weightsList.add(Double.parseDouble(line)); } j++; } double[] weights = new double[weightsList.size()]; for(int k=0;k<weightsList.size();k++){ weights[k] = weightsList.get(k); } model[i] = new SVMModel(weights, percept); weightsList.clear(); }
注意weightsList.clear();