gpt4 book ai didi

java - HashMap 中的默认值

转载 作者:行者123 更新时间:2023-12-02 05:19:53 24 4
gpt4 key购买 nike

我有一个无法解决的问题。我想解决Alphametics(例如SEND + MORE = MONEY --> O=0,M=1,Y=2,E=5,N=6,D=7,R=8,S=9)所以我尝试了得出这样的方程: 1000*S+100*E+10*N+D + 1000*M+100*O+10*R+E = 10000*M+1000*O+100*N+ 10*E+Y所以我尝试使用 HashMap 来收集这些数据(这仅适用于等式的左侧):

Scanner s = new Scanner(System.in);
int HowMuchWords = s.nextInt();
String[] Words = new String[HowMuchWords];
for(int i = 0; i<Words.length;i++){
Words[i] = s.next().toUpperCase();
}
HashMap<Character,Integer> Letters = new HashMap<Character, Integer>();

for(int i = 0;i<Words.length;i++) {
char[] LettersWord = Words[i].toCharArray();
for (int j = 0; j < LettersWord.length; j++) {
Letters.put(LettersWord[j],Letters.get(LettersWord[j])+(int) Math.pow(10, LettersWord.length - 1 - j));
}

但是我在使用 Letters.get 命令时遇到问题。因为我要给null加上一个数字,所以Value还是null。所以我想将Hashmap中每个值的默认值设置为0。有可能这样做吗?

最佳答案

到目前为止最简单的方法是编写

Integer r = Letters.get(...);
if (r==null)
r=0;

而不是乱七八糟地安排你的 map 返回默认值。

或者

int r = Letters.contains(...) ? Letters.get(...) : 0;

也会这么做。

关于java - HashMap 中的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26595318/

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