我需要创建类型的值的列表 - (长字符串) 像 -如何在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