繁体   English   中英

在2D数组列表中插入元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM