我有两个数据文件data1.txt和data2.txt。data1.txt由3列和10行组成,而data2.txt由4列和4行组成。data1.txt的结构是1.0 1.235 2.31452.0 0.325 3.21453.0 1.568 4.02154.0 0.389 1.23547.0 2.054 1.32478.0 1.111 2.657010.0 1.786 1.258711.0 5.628 0.235413.0 4.897 1.654215.0 1.230 1.0210 data2.txt的结构是5.0 .... .... ....6.0 .... .... .... 9.0 .... .... ....12.0 .... .... ....因此,根据data2.txt中的data1.txt,缺少数据集5.0、6.0。data2.txt中存在的data1.txt中缺少9.0,依此类推。我想在data1.txt中插入那些缺少的值。因此,插入后数据文件的输出将是数据1.txt 1.0 1.235 2.3145 2.0 0.325 3.2145 3.0 1.568 4.0215 4.0 0.389 1.2354 5.0 .... .... .... 6.0 .... .... .... 7.0 2.054 1.3247 8.0 1.111 2.6570 9.0 .... .... .... 10.0 1.786 1.2587 11.0 5.628 0.2354 and so on我的代码就是这样public class F1 {public static void main(String args[])throws Exception{ Scanner X =new Scanner(new File("C:\\data1.txt")); Scanner Y =new Scanner(new File("C:\\data2.txt")); double a=0.0,b=0.0,c,d=0.0,e=0.0,f,g,h; List<Double>list1=new ArrayList<>(); List<Double>list4=new ArrayList<>(); double arr[]=new double[10]; double arr1[]=new double[5]; while (X.hasNext()) { a = X.nextDouble(); list1.add(a); b = X.nextDouble(); c = X.nextDouble(); } while(Y.hasNext()) { d = Y.nextDouble(); list4.add(d); e = Y.nextDouble(); f = Y.nextDouble(); g = Y.nextDouble(); } for(int i=0;i<list1.size();i++) { arr[i]=list1.get(i);//Store value into an array } for(int j=0;j<list4.size();j++){ arr1[j]=list4.get(j);//Store value into an array } for(int k=0;k<arr.length;k++){ // Appending condition }}}我该如何进行?是否需要任何插入排序或任何if语句进行追加?Printwriter在这里是如何工作的?
3 回答
慕神8447489
TA贡献1780条经验 获得超1个赞
你的问题对我来说还不清楚。您是否需要数组索引的解决方案?还是您想要合并解决方案。
对于超出范围的索引-您可以在数组元素比较逻辑中进行如下检查:
for (int k = 0; k < arr.length; k++) {
if (k == list4.size() - 1 && arr[k] < arr1[k]) {
// error because array dimension mismatch
double a1 = 3 + 5; // Any operation
}
}
开心每一天1111
TA贡献1836条经验 获得超13个赞
对于合并,您是否可以将键取为第一位的数字作为地图,并将整个值取为再次的值。例如1.0 1.235 2.3145 1.0作为键,而整个作为Value。现在,您可以根据键对地图进行排序。这将记录排序,您可以进行进一步的计算。这就是你想要的吗?
添加回答
举报
0/150
提交
取消