2011-11-15 5 views
-2

私はJavaのリストの戻り値に困惑しています。Javaのリストの困った返り値

addremoveなどの操作では、追加または削除された要素のインデックスを返すことが期待されていましたが、成功した場合はtrueを返します。私は(それは高価ではないと思う)size -1を呼び出し、このIDを取得することがありaddとの間

は、removeと私は私には、廃棄物のように見えた、indexOfを呼び出す必要があります。

何か不足していますか?

+3

おそらく、リストは必要なデータ構造ではありません。なぜこれが厄介なのかという例が役立ちます。 – Emma

+0

削除後、その項目はリストにないので、索引は実際には意味をなさない。 –

+0

@緊張:そうではありませんが、私は外国のコードを編集していますが、これは私がこの状況で行うことができる最小限の破壊的な修正のようです。 –

答えて

7

を使用して追加し、removigについて私は説明がaddremoveCollectionインターフェイス上にあるので、彼らは、リストベースのデータ構造と同様に設定し 地図 に適用されることと思われるもの。

+0

また、 'List'の実装はソートされたリストかもしれません。 –

+2

私にそれを打つ、私は私の答えを削除します。具体的には、マップとセットには一般に順序付けや「インデックス」という概念がありません。 – user949300

+1

[Map](http://download.oracle.com/javase/6/docs/api/index.html?java/util/Map.html)インタフェースは 'Collection'を拡張せず、addメソッドもありません。 – orien

3

インデックス

+1

はい、indexOf(Object obj)を使用してインデックスを取得し、次にremove(int i)を呼び出します。今あなたはインデックスを持っています。 ArrayListを使用する場合、これは非効率的ではありません。 – Kevin

関連する問題