私は2つの配列を持っていString key[]
ますlong value[]
。キーは複製できます。マップ内の一意のキーとそれらの値の合計が必要です。以下は私が試しているコードですが、配列が範囲外の例外を取得します
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);
}
上記のコードは、見た目がシンプルになるように変更されています。誰か助けてください。