Hashtable键和值存储在单独的数组列表中

时间:2014-09-30 12:26:28

标签: java arrays hashtable

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存储在一个单独的数组列表中(可用),同时如果该键存在于hashtable中我想将该对应键的值存储在另一个数组列表(statusCount)中怎么样?

2 个答案:

答案 0 :(得分: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               
    }
}

答案 1 :(得分:0)

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

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

或者正如本杰明所说的那样,只需要entrySet()就可以让它更容易。