gpt4 book ai didi

java - 如何从 HashMap 列表中获取值?

转载 作者:搜寻专家 更新时间:2023-11-01 01:38:06 24 4
gpt4 key购买 nike

我有一个 HashMapList,它有 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);
}

现在,如何从 HashMap 列表中检索键和值?

如果使用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 值。

现在我想从数据库中获取键和值的值

public void getmyDataBaseValues()
{
List<HashMap<Integer,Long>> ListofHash=populateMyHashMapFromDB();

// This is where i got confused

}

ANSWER 这就是为什么 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());
}
}
}

}

即使没有创建列表,我的任务也已完成。

最佳答案

我仍然不清楚为什么要列表。

public static Map<Integer, Long> populateMyHashMapFromDB() {
Map<Integer, Long> map = new LinkedHashMap<Integer, Long>();
for (int i = 0; i < 10; i++)
map.put(getIntFromDB(i), getLongFromDB(i));
return map;
}

Map<Integer, Long> map = populateMyHashMapFromDB();
Long value = map.get(key);

此集合并非旨在为您轻松提供键/值对。如果您需要此功能,我建议您使用不同的结构。

假设您有一些无法更改的错误代码,您可以这样做

List<Map<Integer, Long>> maps = new ArrayList<Map<Integer, Long>>();

Map<Integer, Long> all = new HashMap<Integer, Long>();
for(Map<Integer, Long> map: maps)
all.putAll(map);

for(Map.Entry<Integer, Long> entry: all.entrySet() {
// do something which each key/value.
}

在此示例中,您不需要列表或 map 。

long[] longs = new long[10];
for (int i = 0; i < 10; i++)
longs[i] = i;

int key = 1;
int num = longs[key];

关于java - 如何从 HashMap 列表中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6358853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com