gpt4 book ai didi

java - 如果我没有将元素放入 Map 中,如何从 Map 中获取元素?

转载 作者:行者123 更新时间:2023-12-03 01:13:07 24 4
gpt4 key购买 nike

首先我想说我是 map 界面的新手,昨天开始学习它,我发现了这个程序

    public class maptest{


public static void main(String[] args) {
Map<String, Integer> m = new HashMap<String, Integer>();
String argss[]={"i","came","i","left","i","saw"};
for (String a : argss) {
Integer freq = m.get(a);
m.put(a, (freq == null) ? 1 : freq + 1);
}

System.out.println(m.size() + " distinct words:");
System.out.println(m);

}
}

它的输出是

4 distinct words: {saw=1, left=1, came=1, i=3}

我想知道我还没有在 Map 中放入任何内容,但我刚刚声明了一个字符串数组,所以我如何使用

m.get(a);

因为我的Map中没有任何东西,我只能通过PUT方法在Map中放置一些东西。

最佳答案

执行示例

// first time that a is "i"
Integer freq = m.get(a); // returns null because "i" is not in the map
m.put(a, (freq == null) ? 1 : freq + 1); // associates 1 to the key "i"

// second time that a is "i"
Integer freq = m.get(a); // returns 1 because "i" is associated with 1
m.put(a, (freq == null) ? 1 : freq + 1); // associates freq+1 (=2) to the key "i"

// second time that a is "i"
Integer freq = m.get(a); // returns 2 because "i" is associated with 2
m.put(a, (freq == null) ? 1 : freq + 1); // associates freq+1 (=3) to the key "i"

第一步详细信息(获取)

在第一步中,如果没有值与 a 关联,则 m.get(a) 仅返回 null。换句话说,如果您从未遇到过某个单词,则还没有任何频率,因此您在此处得到 null:

Integer freq = m.get(a); // returns null if a is not associated

但是,如果已经遇到该单词,我们确实在 map 中放置了一些非空的内容(频率)。因此,您可以获得与该 key 关联的频率。

注意:null 值可能意味着nulla”关联em> (不仅a 不在 map 中”)。但是,我们从不将 null 作为任何键的值(请参阅下一节)。

第二步详细信息(放置)

这是使用 ternary operator *:如果 freqnull,则将 1 放入映射中;如果 freq 不为 freq,则将 freq+1 放入映射中空:

m.put(a, (freq == null) ? 1 : freq + 1);

我们放入映射中的值与 a 当前持有的键相关联,替换任何以前的值。稍后调用 get() 将返回我们刚刚输入的新值。

<小时/>

(*) 像这样的构造:condition ? value_if_true : value_if_false

关于java - 如果我没有将元素放入 Map 中,如何从 Map 中获取元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23152758/

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