17
A
回答
38
由於[]
是一個運算符,並且java不支持運算符重載,所以不能將它與List一起使用。相反,您必須使用set(int index, T value)
和get(int index)
方法,該方法可能冗長但提供了完全相同的功能。
18
List.get(int)
允許您訪問使用索引元素。
2
6
您可以通過使用get方法的使用他們的索引來訪問列表元素:
得到
公共對象獲取(INT指數)
返回 元素在指定位置 在此列表中。
參數:index - 要返回的元素索引。
返回: 該列表中指定位置 處的元素。
拋出: IndexOutOfBoundsException - 如果 索引超出範圍(index < 0 || 指數> =尺寸())。
請記住,列表中的索引是基於0的索引。
2
不,您僅限於List.get (i)
。
括號[]
在語法級別上定義,而不是方法名稱,因此您不能覆蓋它們。它們僅用於陣列。
如果您想遷移到JVM的更現代的語言Scala,您會發現統一訪問數組和列表,但都使用圓括號()
。
5
這裏有很多很好的答案,但我只想指出,list.get(i)
與list[i]
相同,只有當列表使用數組(即ArrayList)實現時纔是如此。如果它是一個LinkedList,你實際上並沒有索引get
,而是迭代。
所以如果你使用get()
接口類型列表中,特別是在一個循環中,你應該檢查它是如何實現的,爲get()
與ArrayList的是O(1),而get()
與LinkedList的是O(n)(慢得多)。
3
替代使用get(int)
是創建使用toArray()
List<T> list = ...
Object[] array = list.toArray();
數組如果T是已知,toArray(T[])
可用於返回T[]
代替Object[]
。
使用toArray
只是有意義的,而不是get
,如果真的需要一個數組(很多訪問)。
相關問題
- 1. Haskell:使用列表來訪問索引
- 2. GORM訪問列表索引
- 3. 我可以通過數字索引訪問關聯數組嗎?
- 4. 訪問數組索引
- 5. jquery訪問數組索引
- 6. 從索引訪問數組
- 7. 是否可以使用1D索引訪問C++ 2D int數組?
- 8. 使用非順序索引綁定到列表的模型。我可以以後訪問索引嗎?
- 9. 多維數組索引和列訪問
- 10. 我可以訪問apply()中使用的函數的行索引
- 11. 訪問列表的索引是列表
- 12. 列表或數組的可選索引
- 13. RavenDB:我們可以傳遞參數來映射/減少索引
- 14. 我們可以爲表中的所有列創建索引嗎?
- 15. 我們可以使用solr索引圖形數據庫嗎?
- 16. 我可以使用Solr來搜索現有的Lucene索引嗎?
- 17. Python - 我如何使GTK.BUTTON作爲數組/列表?所以通過索引它可以以後訪問
- 18. 是否可以直接訪問索引?
- 19. Ç段錯誤使用可變索引與使用數來索引陣列
- 20. 訪問數組索引時未定義的索引
- 21. 訪問陣列索引值
- 22. 可以通過索引和密鑰訪問的內置列表
- 23. 我們可以採用Lucene索引從rdf表中檢索數據嗎?
- 24. 我可以在RavenDB中使用索引作爲索引的來源
- 25. 訪問數組 - 更快 - 「指針引用」或只訪問數組「變量(索引)」?
- 26. 我們可以在索引數據庫中創建多少個索引?
- 27. 我們可以限制索引器中索引器的數目嗎?
- 28. 列表索引超出範圍。不過,我可以打印我想要使用的列表索引
- 29. 使用關聯索引和編號索引訪問數組元素
- 30. 使用嵌套索引列表訪問列表元素
男人,我愛你<3。 – Kadaj 2017-03-28 20:03:59