gpt4 book ai didi

java - 如何将 arraylist 中的 59 个元素分组为一个元素?

转载 作者:行者123 更新时间:2023-12-02 09:46:40 24 4
gpt4 key购买 nike

所以,我有一个程序,可以从 1960 年到 2018 年的文本文件中读取值及其年份。每个指标代码都有不同的值,但年份保持不变,即 1960-2018 年。我已成功读取文本文件并将其存储在数组列表中。

但是,一个指标的值及其年份不会分组到一个元素中。相反,它将它们分组为一个值(及其年份)、一个元素。假设我有 2 个指标代码,每个指标代码有 59 个值。它们全部混合成118种元素。我想要它们有两个元素。

如何解决这个问题,使每个指标代码及其数据(年份和值)都在一个元素中?

myLinkedList bigdata = new myLinkedList();
ArrayList <MyData> data = new ArrayList();
MyData d1;

File inFile2 = new File ("indicator2.txt");
FileReader fr2 = new FileReader (inFile2);
BufferedReader br2 = new BufferedReader(fr2);
String str2 = br2.readLine();

while(str2 != null ){
StringTokenizer st = new StringTokenizer(str2,";");

String cCode = st.nextToken();
String iName = st.nextToken();
String iCode = st.nextToken();

for (int j = 0; j < 59; j++){
String v = st.nextToken();
int year = 1960 + j;

d1 = new MyData (year,v);
data.add(d1);
}
Indicator idct1 = new Indicator (cCode,iName,iCode,data);
bigdata.insertAtBack(idct1);
str2 = br2.readLine();
}

indicator2.txt 示例:
我的;工业就业(占总就业的百分比)(模拟国际劳工组织的估计); SL.IND.EMPL.ZS;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空;空; null;null;null;null;null;null;31,72100067;31,62000084;32,01699829;32,22900009;32,34000015;32,23300171;33,6629982;31,76000023;31,70000076;32, 18299866;33,11000061;31,97999954;32,02000046;30,12700081;29,72299957;30,26000023;28,45999908;28,68000031;27,01300049;27,7 3699951;29,08600044;28,56900024; 28,36300087;28,02300072;27,51600075;27,48699951;27,39800072;27,30500031

(左起:cCode;iName;iCode;从1960年开始的值)

最佳答案

我认为问题在于您将所有指标代码的数据一遍又一遍地写入同一个 ArrayList 中。如果您移动以下语句会怎样:

    ArrayList <MyData> data = new ArrayList(); 

while 循环内。然后,当您将每个指标代码保存到 Indicator 对象时,您将为每个指标代码创建一个新的 ArrayList

关于java - 如何将 arraylist 中的 59 个元素分组为一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56598197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com