使用循环使用Hashmap值

时间:2014-12-10 13:27:51

标签: java loops hashmap

我有一个包含5个字段的屏幕。我创建了一个包含5列和10行的excel文件。我想在hashmap中存储excel的值,并使用字段中的每个行值来执行保存操作。我需要使用Framework下的Excel类来读取条目。工作代码:

hmCreateAdvBank=Excel.getXlsRowDataAsMap(TestFile, TestSheet, "1");
Page.Field1.setText(hmCreateAdvBank.get("Key Value"));
Save();

TestFile& TestSheet是带有Excel文件名和工作表名称值的变量。

当我使用for循环并用定义的变量替换整数值时,它会给出一个错误,如:

Stack Trace: null    
java.lang.NullPointerException
    at core.libs.Excel.getXlsRowDataAsMap(Excel.java:786)    

我是这个世界的新手,所以刷新了stackoverflow和你的帮助。

3 个答案:

答案 0 :(得分:1)

您似乎需要遍历Map。最有效的迭代方法如下所示:

    Map<String,String> theMap = new HashMap<String,String>();

    for(Entry<String,String> entry : theMap.entrySet()){
        String key = entry.getKey();
        String value = entry.getValue();
    }

答案 1 :(得分:0)

编辑:这就是你想要的吗?

// iterate over all rows
for(int row = 1; row <= 10; row++) {

    // convert the row number to a String
    String rowStr = String.valueOf(row);

    // get the row data
    Map<String, String> rowData = Excel.getXlsRowDataAsMap(TestFile, TestSheet, rowStr);
    Page.Field1.setText(rowData.get("Column1"));
    Page.Field2.setText(rowData.get("Column2"));
    Page.Field3.setText(rowData.get("Column3"));
    Page.Field4.setText(rowData.get("Column4"));
    Page.Field5.setText(rowData.get("Column5"));
    Save();
}

答案 2 :(得分:-2)

您可以使用foreach循环遍历hashmap的值

package hashmap;

import java.util.HashMap;
import java.util.Map;

public class HashmapLoop {

    public static void main(String[] args) {
        Map<String, String> myMap = new HashMap<String, String>();
        myMap.put("someKey", "someValue");
        myMap.put("otherKey", "otherValue");

        for(String s : myMap.values()) {
            System.out.println(s);
        }
    }

}