Java ArrayList<;列表<;C>&燃气轮机;例外
谁能告诉我我做错了什么,因为我有这个错误: 线程“main”java.lang.IndexOutOfBoundsException中的异常:索引: 0,大小:0处 rangeCheck(ArrayList.java:653)位于 get(ArrayList.java:429)位于 javaapplication4.javaapplication4.main(javaapplication4.java:41)Java ArrayList<;列表<;C>&燃气轮机;例外,java,Java,谁能告诉我我做错了什么,因为我有这个错误: 线程“main”java.lang.IndexOutOfBoundsException中的异常:索引: 0,大小:0处 rangeCheck(ArrayList.java:653)位于 get(ArrayList.java:429)位于 javaapplication4.javaapplication4.main(javaapplication4.java:41) ArrayList tabuleiro=new ArrayList(); ArrayLi
ArrayList tabuleiro=new ArrayList();
ArrayList pos=新的ArrayList();
位置add(40);位置add(50);位置add(60);位置add(31);位置add(41);位置add(22);位置add(32);位置add(42);位置add(13);位置add(23);位置add(33);位置add(24);位置add(34);
对于(int x=0;x要在arraylist中创建arraylist,请执行以下操作:
ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
然后:
要将字符串添加到列表
的第0个索引的ArrayList中,我不确定我是否理解您的问题,因为您似乎在回答自己。答案取决于您希望如何向其中插入元素,以及您希望如何读取它们
以下是迄今为止我能想到的一些方法,如果没有更多信息,我无法选择:
- 使用二维数组
C[][]
,该数组可能包含空值。此解决方案要求从一开始就知道数组的大小
- 使用
ArrayList
,其中根列表是行列表,每行可能包含空项和C对象。您可以根据需要添加更多行,并根据需要向行添加更多元素
- 使用2
ArrayList
,其中第一个是行列表,第二个是列列表。行和列将共享相同的对象,但根本不需要包含任何空值:每一行只是行中包含的非空对象的列表,每一列也是如此
最后一个解决方案不太容易操作,但如果矩阵非常稀疏(包含很少的对象,但包含大量的行和列),则内存效率会更高
要创建包含“C”对象的2D ArrayList,您可以实例化2D列表,例如:
C obj = new C(); //Creates a "C" object
ArrayList<ArrayList<C>> myArray = new ArrayList<ArrayList<C>>(); //Creates a 2 Dimensional ArrayList
myArray.add(new ArrayList<C>); //Adds an ArrayList<C> to the the 2D ArrayList
myArray.get(0).add(obj); //Adds a "C" object to the ArrayList that was added on the previous line
C obj=new C();//创建一个“C”对象
你可以用番石榴
Table Table=HashBasedTable.create();
table.put(0,8,新的YourClassC());
table.put(1,3,新的YourClassC());
table.put(2,2,new yourclass c());
...
table.get(0,0);//返回null
table.get(0,8);//返回类C的第一个实例
答案取决于您希望如何向其中插入元素以及如何读取元素。然后,我们可以帮助您决定如何实现它。这个问题很简单。请查阅有关在Java中使用数组的文档/教程。专注于使用二维数组。尽管一旦您知道如何使用一维数组,我会Nonal数组,你已经做得很好了。2D数组就像矩阵一样工作。arr[i][j]
本质上是第i
行、第j
列的值。知道了这一点,请考虑如何将值分配给2D数组中的位置,以形成所描述的模式。@VivinValiath OP说“我只是想知道如何创建双维度arraylist”。您谈论的是数组,而不是arraylist
。可能的重复。另请参见和。另一种方法是使用HashMap
,并定义自己的IntPair
类,该类有两个int
值。
list.add(new ArrayList<String>);
list.get(0).add("Hello);
C obj = new C(); //Creates a "C" object
ArrayList<ArrayList<C>> myArray = new ArrayList<ArrayList<C>>(); //Creates a 2 Dimensional ArrayList
myArray.add(new ArrayList<C>); //Adds an ArrayList<C> to the the 2D ArrayList
myArray.get(0).add(obj); //Adds a "C" object to the ArrayList that was added on the previous line
Table<Integer, Integer, YourClassC> table = HashBasedTable.create();
table.put(0, 8, new YourClassC());
table.put(1, 3, new YourClassC());
table.put(2, 2, new YourClassC());
...
table.get(0, 0); // returns null
table.get(0, 8); // returns first instance of YourClassC