【问题标题】:Hashtable Key and value storing in separate array list哈希表键和值存储在单独的数组列表中
【发布时间】:2014-09-30 12:26:28
【问题描述】:

java代码

Hashtable<String, Integer> gettingStatus = searchActiveAssetStatus();
        ArrayList<String> statusValue = new ArrayList<String>();
        ArrayList<String> statusCount = new ArrayList<String>();
        Set<String> keys = gettingStatus.keySet();

        for (String key : keys) {
            if (key.contains("Active")) {
                statusValue.add(key);               
            }

            if (key.contains("Abandoned")) {
                statusValue.add(key);
            }

            if (key.contains("Deleted")) {
                statusValue.add(key);
            }
            }

对于上面我已经将 Key 存储在一个单独的数组列表中(可用),同时如果该键存在于哈希表中,我想将该对应键的值存储在另一个数组列表中(statusCount)如何?

【问题讨论】:

  • 需要更多细节,无法得到您真正想要的。
  • @yogesh:从那个 Hastable 我想拆分 Kay 和 value 并存储在一个单独的数组列表中,从上面的键值存储在一个单独的数组中,无法存储相应的值进入另一个数组列表

标签: java arrays hashtable


【解决方案1】:

您可以使用entrySet() 方法代替keySet() 方法:

Set<Entry<String, Integer>> entries = gettingStatus.entrySet();

for (Entry<String, Integer> entry : entries) {
    String key = entry.getKey();
    Integer value = entry.getValue();

    if (key.contains("Active")) {
        statusValue.add(key);
        // Store value               
    }

    if (key.contains("Abandoned")) {
        statusValue.add(key);
        // Store value               
    }

    if (key.contains("Deleted")) {
        statusValue.add(key);
        // Store value               
    }
}

【讨论】:

    【解决方案2】:

    如果我的问题正确,您只需询问相应键的值并将其放入列表中:

        Hashtable<String, Integer> gettingStatus = searchActiveAssetStatus();
        ArrayList<String> statusValue = new ArrayList<String>();
        ArrayList<String> statusCount = new ArrayList<String>();
        Set<String> keys = gettingStatus.keySet();
        for (String key : keys) {
            if (key.contains("Active") || key.contains("Abandoned") || key.contains("Deleted")) {
                statusValue.add(key);
                statusCount.add(gettingStatus.get(key).toString());
            }
        }
    

    或者正如 Benjamin 所说,只需使用 entrySet(),这会更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 2014-04-14
      • 2012-11-12
      相关资源
      最近更新 更多