0

オブジェクトの重複コピーを含む配列リストを使用しています。lastIndexOfメソッドを使用して重複コピーを判別できます。決定後、その重複アイテムをリストから削除できます。さて、AFAIKは、リストからアイテムを削除すると、リストの全体的な構造が破損します。つまり、リストからアイテム番号5を削除すると、場所5には、トラバースの問題につながるようなものは何もありません。私はスタックオーバーフローの同様の質問を読み、ハッシュセットのようにすべてを試しましたが、私にとっては、それらは機能しません。文字列のみを含む一意のArraylistを維持するにはどうすればよいですか。

4

2 に答える 2

3

アイテム5を削除すると、ロケーション5には「穴」が含まれなくなります。リスト内の次のアイテムは、アイテム5がある場合は、アイテム5になります。したがって、リストからアイテムを削除し続けて、一意性を実現できます。ただし、一意のコレクションが必要な場合は、セットを使用できます。

于 2013-03-05T21:35:39.620 に答える
0

ドキュメントを読むのはお金がかかります。

public Object remove(int index)

このリストの指定された位置にある要素を削除します。後続の要素を左にシフトします(インデックスから1つ減算します)。

マイクが言ったように、重複が問題であるなら、なぜ使用しませんSetか?

于 2013-03-05T21:40:10.790 に答える