为了账号安全,请及时绑定邮箱和手机立即绑定

根据Java中的键属性合并两个文件的数据

根据Java中的键属性合并两个文件的数据

LEATH 2021-04-12 20:25:55
我有两个数据文件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

    }

}


查看完整回答
反对 回复 2021-04-28
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

对于合并,您是否可以将键取为第一位的数字作为地图,并将整个值取为再次的值。例如1.0 1.235 2.3145 1.0作为键,而整个作为Value。现在,您可以根据键对地图进行排序。这将记录排序,您可以进行进一步的计算。这就是你想要的吗?


查看完整回答
反对 回复 2021-04-28
  • 3 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信