ハッシュマップから特定のキーを削除し、それに従ってハッシュマップにキーを再配置する方法を教えてください。リサイクラビューでキーを削除して再配列する場合
以下は私のコードです。私はあなたが直接あなたが直接ハッシュマップ内のキーを配置する再」のよう
hashMap.remove(removeKey);
を行うことができ、キーと値のペアを削除することができ、エラーのスクリーンショット
ハッシュマップから特定のキーを削除し、それに従ってハッシュマップにキーを再配置する方法を教えてください。リサイクラビューでキーを削除して再配列する場合
以下は私のコードです。私はあなたが直接あなたが直接ハッシュマップ内のキーを配置する再」のよう
hashMap.remove(removeKey);
を行うことができ、キーと値のペアを削除することができ、エラーのスクリーンショット
を添付した
Set<Integer> integerSet = hashMap.keySet();
int removekey = pos;
ArrayList<Integer> integers = new ArrayList<>();
for (Integer integer : integerSet) {
if (integer > removekey) {
integers.add(integer);
}
}
for (Integer integer : integers) {
if (hashMap.containsKey(integer)) {
AddCardPojo pojo = hashMap.get(integer);
pojo.setImagCard(cardImage[integer - 1]);
hashMap.remove(integer);
hashMap.put(integer - 1, pojo);
}
}[![enter image description here][1]][1]
'、 データの順序を保証しないデータ構造です。 Check this answer for more
あなたは整数ごとに特定の順序が必要な場合は、最後にそれを行うことができるのArrayList
を使用することができます。 以下は私の答えです。
hashMap.remove(key);
List<AddCardPojo> hashMapsList=new ArrayList<>();
Iterator it = hashMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
hashMapsList.add((AddCardPojo) pair.getValue());
}
hashMap = new HashMap<>();
for(int i=0; i<hashMapsList.size();i++){
hashMap.put(i,hashMapsList.get(i));
}
再配置することは何を意味しますか?あなたは何をしようとしているのか説明できますか? –
ハッシュマップに7つ以上の項目を追加し、ハッシュマップから4番目の項目を削除しようとすると、エラー "ArrayIndexOutOfBoundsException"が表示されます –
質問に例外を追加できますか? –