【问题标题】:Populate List w/ data用/数据填充列表
【发布时间】:2015-07-15 08:47:02
【问题描述】:

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

我基本上只是一遍又一遍地重复我的 data[] 的最后一行(带有正确的字段)。我想我可以做类似的事情

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

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

豆码:

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 个字段的链接哈希图数组

【问题讨论】:

  • 如果不查看代码结构的全貌,很难说出了什么问题。什么是data 对象?什么是Bean 类?以此类推。

标签: java for-loop reflection hashmap javabeans


【解决方案1】:

如果你一遍又一遍地得到最后一个元素,我会在黑暗中拍摄,猜你可以试试这个:

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

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

【讨论】:

  • 我想我没有说清楚。我收到一组链接的哈希图。内部 for 单独填充每一行,并且这样做是正确的。外部 for 用于从我的哈希图数组的每一行中获取数据。我的目标是从(LinkedHashMap&lt;String, Object&gt;)data[j]j&lt;data.length 获取数据。到目前为止,我得到的是我的哈希图数组的最后一行一遍又一遍地重复。因为,我认为, line 只是获取数据的最后一个索引。如果我能得到 data[1] 把它放在第 1 行,第 2 行的 data[2] 就可以了。
【解决方案2】:

让我们弄清楚这一点。这就是问题

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-13
    • 2021-01-18
    • 1970-01-01
    相关资源
    最近更新 更多