【问题标题】:How to generate new hashtable during a for loop in the Arraylist of hashtable如何在哈希表的Arraylist中的for循环期间生成新的哈希表
【发布时间】:2014-03-05 15:29:29
【问题描述】:

已编辑,更多说明。 嗨,很抱歉这个模糊的问题,创建新哈希表时出现问题,我的意思是添加新行。

以前,如果我知道我想添加多少行示例我想添加 3 行,我将声明 3 个 hashmap 并输入如下所示的值。但是现在,我想做一些计算,并根据如图所示的计算生成 x 行。我不知道如何在 for 循环中声明和创建新的行/哈希图。

protected void populateList(int i,Double profit,Double balance, Double revenue)
{
    list = new ArrayList<HashMap>();
    HashMap row1 = new HashMap();
    row1.put(FIRST_COLUMN,i);
    row1.put(SECOND_COLUMN, balance);
    list.add(row1);

    HashMap row2 = new HashMap();
    row2.put(FIRST_COLUMN,i);
    row2.put(SECOND_COLUMN, balance);
    list.add(row2);

    HashMap row3 = new HashMap();
    row3.put(FIRST_COLUMN,i);
    row3.put(SECOND_COLUMN, balance);
    list.add(row3);
}

我想创建一个包含多列的列表视图,并在单击按钮时通过计算动态生成行。所以我创建了一个哈希表的数组列表(单个哈希表的行),但是我在创建一个新的哈希表时遇到了问题。

onClick

public void onClick(View view) {
    for (int i=1; i <= count; i++) {
        // figure to be input into column
        Double profit = totalsum - cost;
        Double balance = totalsum - profit - cost;
        Double revenue = total sum;

        populateList(i,profit,balance,revenue);
    }
}

populateList方法

protected void populateList(int i,Double profit,Double balance, Double revenue)
{
    list = new ArrayList<HashMap>();
    HashMap temp = new HashMap();
    temp.put(FIRST_COLUMN,i);
    temp.put(SECOND_COLUMN, balance);
    temp.put(THIRD_COLUMN, profit);
    temp.put(FOURTH_COLUMN, revenue);
    list.add(temp);
}

【问题讨论】:

  • i have problems creating a new hashtable你有什么问题?
  • In populateList(): list = new ArrayList&lt;HashMap&gt;(); -- 您正在为每一行创建一个新的空列表,丢弃任何以前的条目。创建列表一次,然后将那些HashMaps 添加到其中。

标签: java android arraylist hashmap


【解决方案1】:

我猜你想做的是

public void onClick(View view) {
    List<HashMap> list = new ArrayList<HashMap>();
    for (int i=1; i <= count; i++)
    {
        // figure to be input into column
        Double profit = totalsum - cost;
        Double balance = totalsum - profit - cost;
        Double revenue = total sum;

        list.add(populatelist(i,profit,balance,revenue));


    }
}

protected HashMap populatelist(int i,Double profit,Double balance, Double revenue) {
    HashMap temp = new HashMap();
    temp.put(FIRST_COLUMN,i);
    temp.put(SECOND_COLUMN, balance);
    temp.put(THIRD_COLUMN, profit);
    temp.put(FOURTH_COLUMN, revenue);
    return temp;

}

但很难说你给了什么。

【讨论】:

  • Voidreturn ?
  • 我们不要太神秘! populateList() 的返回类型应该是 HashMap ... 我会说这是一个简单的疏忽。
  • 这是对他试图做什么的复制/粘贴提示。没有仔细检查。我的错。
猜你喜欢
  • 2012-03-05
  • 1970-01-01
  • 2010-09-24
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多