如何从HashMap列表中获取值?
|
我有一个
HashMap
\的List
,其中键的类型为Integer
,值的类型为Long
。
List<HashMap<Integer, Long>> ListofHash = new ArrayList<HashMap<Integer, Long>>();
for (int i = 0; i < 10; i++) {
HashMap<Integer, Long> mMap = new HashMap<Integer, Long>();
mMap.put(Integer.valueOf(i), Long.valueOf(100000000000L+i));
ListofHash.add(mMap);
}
现在,如何从from1ѭ列表中检索键和值?
如果使用Collection
类是解决方案,请告诉我。
更新1:
实际上,我正在从数据库中获取值并将其放入HashMap中
public static List<Map<Integer, Long>> populateMyHashMapFromDB()
{
List<HashMap<Integer, Long>> ListofHash = new ArrayList<HashMap<Integer, Long>>();
for (int i = 0; i < 10; i++) {
HashMap<Integer, Long> mMap = new HashMap<Integer, Long>();
mMap.put(Integer.valueOf(getIntFromDB(i)), Long.valueOf(getLongFromDB(i)));
ListofHash.add(mMap);
}
return ListofHash;
}
getIntFromDB和getLongFromDB可以分别检索任何int和long值。
现在这是我要从DB获取键和值的值的地方
public void getmyDataBaseValues()
{
List<HashMap<Integer,Long>> ListofHash=populateMyHashMapFromDB();
// This is where i got confused
}
这就是彼得·劳瑞(Peter Lawrey)建议的原因
public class HashMaps {
public static void main(String[] args) {
// TODO Auto-generated method stub
testPrintHashmapValues(putToHashMap());
testPrintHashmapValuesWithList(putToHashMapWithList());
}
public static Map<Integer, Long> putToHashMap() {
Map<Integer, Long> map = new LinkedHashMap<Integer, Long>();
for (int i = 0; i < 10; i++) {
map.put(Integer.valueOf(i), Long.valueOf(200000000000L + i));
}
return map;
}
public static void testPrintHashmapValues(Map<Integer, Long> map) {
for (Map.Entry<Integer, Long> entry : map.entrySet()) {
System.out.println(\"key: \" + entry.getKey() + \" value: \"
+ entry.getValue());
}
}
public static List<Map<Integer, Long>> putToHashMapWithList() {
List<Map<Integer, Long>> listOfHash = new ArrayList<Map<Integer, Long>>();
for (int i = 0; i < 10; i++) {
Map<Integer, Long> mMap = new HashMap<Integer, Long>();
mMap.put(Integer.valueOf(i), Long.valueOf(100000000000L + i));
listOfHash.add(mMap);
}
return listOfHash;
}
public static void testPrintHashmapValuesWithList(
List<Map<Integer, Long>> listOfHash) {
for (int i = 0; i < 10; i++) {
Map<Integer, Long> map = listOfHash.get(i);
for (Map.Entry<Integer, Long> entry : map.entrySet()) {
System.out.println(i + \" hashMap\");
System.out.println(\"key: \" + entry.getKey() + \" value: \"
+ entry.getValue());
}
}
}
}
即使没有创建列表,我的任务也已完成。
没有找到相关结果
已邀请:
6 个回复
久纳禾澎
此集合并非旨在为您轻松提供键/值对。如果您需要此功能,建议使用其他结构。 假设您有一些错误的代码无法更改,则可以执行
在此示例中,您不需要列表或地图。
翱抹村
注意:我还更改了一些代码,在可能的情况下使用
代替
仿普
对象键表示您想要的任何整数键 祝好运!
庞协腿宛炯
PS未经测试。
链眷克袒姜
荆怖赡
此外,变量不应以大写字母(ListOfHash)开头。即使Java不会抱怨,这也是一种不好的做法,并且很难读取这样的代码,因为人们可能会认为它是类名而不是变量。