我需要創建類型的值的列表 - (長字符串) 像 -如何在arraylist中添加(long,String)?
ArrayList a = new ArrayList();
a.add(1L,branchName);
我怎麼能做到這一點,因爲如果我使用列表將只接受整型,字符串。
我需要創建類型的值的列表 - (長字符串) 像 -如何在arraylist中添加(long,String)?
ArrayList a = new ArrayList();
a.add(1L,branchName);
我怎麼能做到這一點,因爲如果我使用列表將只接受整型,字符串。
您應該注意,ArrayList
的add(int,String)
在給定的int索引(如果索引有效)中添加了String元素。 int
參數不是ArrayList
內容的一部分。
也許一個ArrayList
是不適合你的正確選擇。如果您希望將Long
鍵映射到String
值,請使用Map<Long,String>
。
Map<Long,String> a = new HashMap<>();
a.put(1L,branchName);
我認爲值得注意的是,如果他想在列表中添加更多的元素作爲'Integer.MAX_VALUE'(猜測他爲什麼使用long作爲鍵),那麼這兩個結構都會失敗,因爲它們都只能在' Integer.MAX_VALUE'元素。 – SomeJavaGuy
您可以定義自定義類,例如
class IndexAndBranchName {
long index;
String branchName;
}
,然後添加這個實例到ArrayList:
ArrayList<IndexAndBranchName> a = new ArrayList<>();
a.add(new IndexAndBranchName(index, branchName));
無論你使用這種方法或類似葉蘭的事情取決於你需要使用爲隨後的名單是什麼:
Map
;但是,每個鍵只能存儲一個值;如果每個鍵需要多個值,則可以使用Guava Multimap
或類似的。您可以使用下面的代碼爲你的問題。
HashMap的也是一個更好的選擇,但如果你想只ArrayList中,然後使用它。
List<Map<Object, Object>> mylist = new ArrayList<Map<Object, Object>>();
Map map = new HashMap<>();
map.put(1L, "BranchName");
mylist.add(map);
這是存儲一對值的一種非常低效的方式。 –
請問您能否根據您的理解解釋add(int,String)? –
還值得一提的是,集合不能被輸入到基元 - 你*必須*使用包裝類。 – JonK