填充列表w/ data



我有这个代码。第一个for是换行,第二个for是填充每一行。对于第一个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);
    }

我基本上只是得到我的数据[]的最后一行(与正确的字段)一遍又一遍地重复。我想我可以这样写

lista.add(line1,2,3...)

我该怎么做,有没有更好的方法?使用JDK谢谢。

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;

data是一个包含17个字段的链接hashmap数组

如果你反复看到最后一个元素,我猜你可以试试这个:

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

其中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?);
}

如何实现这个循环?我读到反射是一种选择。所以如何?

相关内容

  • 没有找到相关文章

最新更新