[英]inserting element in 2D Array List
我正在尝试在ArrayList中插入元素。 没有添加元素,我找不到原因。
这是我所拥有的:
t [0] [0] =>帐户
t [0] [1] =>余额
class Banking4
{
int i=0;
ArrayList[][] t = new ArrayList[2][10];
Scanner sc=new Scanner(System.in);
void addAccount() {
for(int i=0;i<t.length;i++)
{
if(t[i][0]==null)
{
System.out.println("Enter the account no:");
int a=sc.nextInt();
t[0][0] = new ArrayList();
t[0][0].add(a);
t[0][1] = new ArrayList();
t[0][1].add(0);
System.out.println("Account number is:"+a +"Current balance is:"+t[0][1]);
break;
}
}
}
}
ArrayList不是数组类型。 与其像对待它一样,您需要制作一个嵌套的ArrayList。
// create
ArrayList<ArrayList<FooBar>> list=new ArrayList<ArrayList<FooBar>>();
// add to first layer
list.set(index, new ArrayList<FooBar>());
// add to second layer
list.get(index1).set(index2, new FooBar());
// etc
因此,基本上,要访问第二个arraylist层,您需要在第一个列表上使用get()。
您仅添加/更新2D arraylist数组的第0行,您需要更改:
t[0][0] = new ArrayList();
t[0][0].add(a);
t[0][1] = new ArrayList();
t[0][1].add(0);
至
t[i][0] = new ArrayList();
t[i][0].add(a);
t[i][1] = new ArrayList();
t[i][1].add(0);
您没有以正确的方式进行操作。 您应将其保留为ArrayList的ArrayList。
希望这可以帮助
您正在使用ArrayLists的2D数组(本质上是3D数组),而不是2D ArrayList。 项目t [0] [0](或t [0] [1])本身就是一个ArrayList,这就是为什么您得到意外结果的原因。
如果要使用ArrayList制作2D数组,请像这样使用它:
ArrayList<ArrayList<Integer>> t = new ArrayList<ArrayList<Integer>>(20);
t.get(0) = new ArrayList<Integer();
t.get(0).add(a);
这将创建一个整数数组列表的数组列表,您可以使用get(int index)
方法进行访问。
如果您要使用固定大小的数组,建议您使用带有[]
表示法的本机Java数组:
int[][] t = new int[2][10];
t[0][0] = a;
t[0][1] = 0;
System.out.println("Account number is:"+t[0][0] +". Current balance is:"+t[0][1]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.