Java 使用数据填充列表

Java 使用数据填充列表,java,for-loop,reflection,hashmap,javabeans,Java,For Loop,Reflection,Hashmap,Javabeans,我有这个密码。第一个是换行,第二个是填充每行。对于第一个for,我想从data[]读取数据,并将其放在不同的行中 List lista = new ArrayList(); Bean line = new Bean(); int j; int i; for (j = 1; j < data.length; j++) { LinkedHashMap<String, Object> hmap = (LinkedHashMa

我有这个密码。第一个是换行,第二个是填充每行。对于第一个for,我想从data[]读取数据,并将其放在不同的行中

    List lista = new ArrayList();
    Bean line = new Bean();

    int j;
    int i;

    for (j = 1; j < data.length; j++) {
        LinkedHashMap<String, Object> hmap = (LinkedHashMap<String, Object>)data[j];

        for (i = 1; i < headers.length; i++) {
            line.choosefield(i,headers,hmap);
            }
        lista.add(line);
    }
我怎样才能做到这一点,还有更好的方法吗?使用jdk16。谢谢

bean代码:

public Object getField1() {
return field1;
}

public void setField1(Object field1) {
this.field1 = field1;
}

public Object getField2() {
return field2;
}

public void setField2(Object field2) {
this.field2 = field2;
}
...
public void choosefield(int i, String[] headers, LinkedHashMap<String, Object> hmap){

switch (i) {
case 1:
this.setField1(hmap.get(headers[1]));
break;
...
case 2:
this.setField2(hmap.get(headers[2]));
break;
public对象getField1(){
返回字段1;
}
公共无效集合字段1(对象字段1){
此字段1=字段1;
}
公共对象getField2(){
返回字段2;
}
公共无效集合字段2(对象字段2){
this.field2=field2;
}
...
public void choosefield(int i,字符串[]头,LinkedHashMap hmap){
开关(一){
案例1:
this.setField1(hmap.get(headers[1]);
打破
...
案例2:
this.setField2(hmap.get(headers[2]);
打破

数据是一个包含17个字段的链接hashmaps数组

如果你一遍又一遍地获取最后一个元素,我想你可以试试这个:

for (i = 1; i < headers.length; i++) {
        Object obj = line.choosefield(i,headers,hmap);
        }
    lista.add( obj );
for(i=1;i

其中,
obj
应该具有您的
chosefield
方法的类型。

让我们来解决这个问题。这就是问题所在

List c1;
List c2;
List c3;
... so on to data.length[]

List lista = new ArrayList();

for (int i=0;i<data.length;i++)
{
LinkedHashMap<String, Object> hmap = (LinkedHashMap<String, Object>)data[i];
lista.add(//HOWTO: Add each of the answers?);
}
列表c1;
清单c2;
清单c3;
…依此类推到数据。长度[]
List lista=new ArrayList();

对于(int i=0;我很难在不查看代码结构全貌的情况下说出错误。什么是
数据
对象?什么是
Bean
类?等等。我想我没有说清楚。我收到了一个链接的哈希映射数组。内部的for单独填充每一行,并且这样做是正确的。外部的for用于获取da我的目标是从
(LinkedHashMap)data[j]
获取数据,直到
j
List c1;
List c2;
List c3;
... so on to data.length[]

List lista = new ArrayList();

for (int i=0;i<data.length;i++)
{
LinkedHashMap<String, Object> hmap = (LinkedHashMap<String, Object>)data[i];
lista.add(//HOWTO: Add each of the answers?);
}