2011-11-15 25 views
-2

我對Java列表中的返回值感到困惑。Java列表中令人費解的返回值

我會預期的操作,如addremove返回添加或刪除元素的索引,而不是他們只是在成功時返回true。

雖然與add我可以得到這個ID調用size -1(猜它不貴),與remove我要叫indexOf,它看起來像一個垃圾給我。

我錯過了什麼嗎?

+3

也許列表不是你需要的數據結構 - 爲什麼這是尷尬的例子會有所幫助。 – Emma

+0

刪除後,該項目不在列表中,因此索引並不合理。 –

+0

@Emma:沒錯,但我編輯的是外國代碼,這看起來像我在這種情況下可以做的最不具破壞性的修改。 –

回答

7

removig我想解釋的是,addremoveCollection接口,因此它們適用於 地圖 設置以及基於列表的數據結構。

+0

或者你的'List'實現可能是一個排序列表。 –

+2

打敗我,所以我會刪除我的答案。詳細來說,地圖和集合通常沒有排序或「索引」的概念。 – user949300

+1

[Map](http://download.oracle.com/javase/6/docs/api/index.html?java/util/Map.html)接口不會擴展'Collection',並且沒有添加方法。 – orien

3

什麼有關添加和使用指標

+1

是的,使用indexOf(Object obj)獲取索引,然後調用remove(int i)。現在你有索引。如果你使用ArrayList,這將不是低效的。 – Kevin