gpt4 book ai didi

java - 使用数组基于公共(public)键添加值

转载 作者:行者123 更新时间:2023-11-29 03:37:56 25 4
gpt4 key购买 nike

我有 2 个数组 String key[]long value[] 。 key 可以重复。我需要唯一键及其在 map 中的值总和。下面是我正在尝试的代码,但我得到了数组越界异常

public HashMap < String, Long > getValueMap(String key[], long value[]) {
Map newmap = new HashMap();
long count = 0;
for (int i = 0; i < value.length; i++) {
for (int j = 0; j < value.length; j++) {
if (key[i] == key[j]) {
count = count + value[j];
}
}
newmap.put(key[i], count);

count = 0;
}
return (HashMap < String, Long > ) newmap;

}


long[] value = {};
String key[] = {};
int i = 0;
if(!worklogs.isEmpty()){
for(Worklog wl:worklogs){
value[i]=wl.getValue();
key[i]=wl.getAuthor();i++;

}
}

HashMap < String, Long > newhm = getValueMap(key, value);
Iterator entries = newhm.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
String newkey = (String) entry.getKey();
Long newvalue = (Long) entry.getValue();
System.out.println("Key = " + newkey + ", Value = " + newvalue);
}

修改上面的代码,让它看起来很简单。有人可以帮忙吗?

最佳答案

这可能是因为数组值和键在尝试向它们添加值之前尚未初始化。

long[] value= new long[10];

String key[]= new String[10];

为什么需要使用数组而不是列表?因为如果您需要 ve 变量的长度,我认为这将是一种更舒适的方法。

关于java - 使用数组基于公共(public)键添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14522201/

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