Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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 在二维数组列表中添加元素_Java_Multidimensional Array_Arraylist - Fatal编程技术网

Java 在二维数组列表中添加元素

Java 在二维数组列表中添加元素,java,multidimensional-array,arraylist,Java,Multidimensional Array,Arraylist,我知道,对于数组,可以通过以下方式在二维数组中添加元素: array[0][1] = 17; //just an example 如何使用ArrayList执行相同的操作 myList.get(0).set(1, 17); 也许吧 这假设一个嵌套的ArrayList,即 ArrayList<ArrayList<Integer>> myList; arraylistmylist; 选择合适的词:这会给内部列表中的特定位置赋值,但不会添加一个值。但是您的代码示例也是

我知道,对于数组,可以通过以下方式在二维数组中添加元素:

 array[0][1] = 17; //just an example
如何使用ArrayList执行相同的操作

myList.get(0).set(1, 17);
也许吧

这假设一个嵌套的
ArrayList
,即

ArrayList<ArrayList<Integer>> myList;
arraylistmylist;
选择合适的词:这会给内部列表中的特定位置赋值,但不会添加一个值。但是您的代码示例也是如此,因为数组的大小是固定的,所以您必须以正确的大小创建它们,然后将值分配给各个元素槽

如果你真的想添加一个元素,那么它当然是
.add(17)
,但这不是你的代码所做的,所以我使用了上面的代码

outerList.get(0).set(1, 17);
外部列表是一个
列表

请记住,二维数组并不存在。它们实际上是数组或数组。

ArrayList's)

 ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>();
 data.add(new ArrayList<String>());
 data.get(0).add("String");

2> 在Java中,确实存在二维数组;C#没有2D数组(请参阅的)

我发现最方便的方法是声明您的2D数组列表,然后声明一个nornal一维数组

ArrayList<ArrayList<String>> 2darraylist = new ArrayList<>();
ArrayList<String> 1darraylist=new ArrayList<>();
只要您的问题只是将元素添加到列表中,这就行了。如果要将它们添加到列表中的特定位置,请使用.get().set();是你想要坚持的。

String[]myList={“a”、“b”、“c”、“d”};
String[] myList = {"a","b","c","d"};
ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>();
data.add(new ArrayList<String>());
int outerIndex =0;
int innerIndex =0;
for (int i =0; i<list.length; i++) {
     data.get(outerIndex).add(innerIndex, list[i]);
     innerIndex++;
 }
System.out.println(data);
ArrayList数据=新的ArrayList(); add(newarraylist()); int outerIndex=0; int innerIndex=0;
对于(int i=0;我很高兴James Gosling蔑视运算符重载……当然,get(0)在哪里返回一个列表。还要注意17是自动装箱到新整数(17)
@Joey:你有什么疑问?请查看答案中的代码,因为它使用get(…).get(…)。这怎么会不允许我在上面的评论呢?不管
get(1)
returns,为其分配17不会将其添加到列表中,而且肯定不会编译?@Joey:是的,你说得对,我当时也没想。我的酒精系统中一定没有足够的血液。
ArrayList<ArrayList<String>> 2darraylist = new ArrayList<>();
ArrayList<String> 1darraylist=new ArrayList<>();
1darraylist.add("string data");
2darraylist.add(idarraylist);
String[] myList = {"a","b","c","d"};
ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>();
data.add(new ArrayList<String>());
int outerIndex =0;
int innerIndex =0;
for (int i =0; i<list.length; i++) {
     data.get(outerIndex).add(innerIndex, list[i]);
     innerIndex++;
 }
System.out.println(data);
data.add(new ArrayList<String>());
public static String[] myList = {"a", "b","-","c","d","-","e","f","-"};

public static ArrayList<ArrayList<String>> splitList(String[] list) {

    ArrayList<ArrayList<String>> data = new ArrayList<ArrayList<String>>();
    data.add(new ArrayList<String>());
    int outerIndex =0;
    int innerIndex =0;
    for (int i=0; i<list.length; i++) {
        System.out.println("will add: " + list[i]);
        if(!list[i].contains("-")) {
            System.out.println("outerIndex: " + outerIndex +" innerIndex: "+ innerIndex);
            data.get(outerIndex).add(innerIndex, list[i]);
            innerIndex++;
        } else {
            outerIndex++;    // will move to next outerIndex
            innerIndex = 0;  // reset or you will be out of bounds
            if (i != list.length-1) {
                data.add(new ArrayList<String>());  // create an new outer index until your list is empty
            }
        }
   }  
    return data;
}
public static void main(String[] args) {
    System.out.println(splitList(myList));
}