gpt4 book ai didi

java - Map.Entry 和 map.get(key) 有什么区别

转载 作者:行者123 更新时间:2023-11-29 06:48:26 25 4
gpt4 key购买 nike

我比较关心的是Map.Entry还是map.get(key),行的结构是List< Map< String, Object >> 下面的代码为:

for (Map<String, Object> row : rows) {
Object stock = row.get("stock");
}

另一个:

for (Map<String, Object> row : rows) {
for (Map.Entry<String, Object> cell : row.entrySet()) {
if (cell.getKey().equals("stock")) {
Object stock = cell.getValue();
}
}
}

哪个更好?

还有一个我很好奇的问题,我只知道一些键名,不知道全部,我想从map中获取所有的值,怎么办?顺便说一句,我不想​​使用 entrySet 迭代器方法。

for (Map<String, Object> row : rows) {
Object stock = row.get("stock");
Object itemId = row.get("itemid");
Object modelId = row.get("modelid");

// todo
// how to get other values that I don't know the key name String}

最佳答案

which one is better?

通常,在编程中,没有通用的更好。事情总是取决于上下文。

话虽如此,在编写代码时,您会努力用最少的代码(即易于阅读和理解的代码)“做需要做的事情”。

从这个角度来看,您的第一个选择无疑是赢家。它可以完成工作,更易于阅读和维护(主要是因为您查看的代码更少)。工作在哪里:遍历 map 中的所有条目,并对每个值执行一些操作。

从“语义”的角度来看,这两个选项“做同样的事情”,所以它们大部分是等价的,我真的想不出一个例子,你最终会得到两个选项的不同行为(除了运行时的不同成本,请参阅其他答案)。

关于java - Map.Entry 和 map.get(key) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57865919/

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