Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ArrayList<;列表<;C>&燃气轮机;例外_Java - Fatal编程技术网

Java ArrayList<;列表<;C>&燃气轮机;例外

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

谁能告诉我我做错了什么,因为我有这个错误:

线程“main”java.lang.IndexOutOfBoundsException中的异常:索引: 0,大小:0处 rangeCheck(ArrayList.java:653)位于 get(ArrayList.java:429)位于 javaapplication4.javaapplication4.main(javaapplication4.java:41)

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