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));
}