如何在二维数组列表中设置/获取值?

时间:2016-05-31 11:03:15

标签: java android list arraylist

我想在一个二维的arraylist中设置/获得一个vaule。 像这样,

    [0]   [1]   [2]
[0] true  false true
[1] true  true  true
[2] true  false false
[3] false true  true

我的代码 :

 Arraylist<Arraylist<Boolean>> checkBoxState= new Arraylist<Arraylist<Boolean>();

获取:

checkBoxState.get(position).get(h);

设置:

checkBoxState.get(position).set(h,true);
  • 位置,h是int变量

但是我的设置/获取代码无效。 如何设置/获取checkBoxState(0.3)?

谢谢。

4 个答案:

答案 0 :(得分:1)

像这样使用

int rowCount = 4, columnCount = 3

private final boolean[][] selectedStatus;

 selectedStatus = new boolean[rowCount][];
        for (int i = 0; i < rowCount; i++) {
            selectedStatus[i] = new boolean[columnCount];

            for (int j = 0; j < columnCount; j++) {
                selectedStatus[i][j] = false;
            }
        }


[0]   [1]   [2]
[0] false false false 
[1] false false false 
[2] true  false false
[3] false false false 

现在通过提供所选行列的值来初始化它:

selectedStatus[0][0] = true;

这将是最初的。并通过提供索引

以相同的方式获得此信息

答案 1 :(得分:1)

尝试这将起作用

        boolean test=true;
        ArrayList<Boolean> mBooleen=new ArrayList<>();
        mBooleen.add(test);
        heckBoxState.add(mBooleen);
        heckBoxState.get(0).set(0, false);
        heckBoxState.get(0).get(0);
        Log.d("your data", heckBoxState.get(0).get(0)+"");

答案 2 :(得分:0)

我认为你面临的问题是填充ArrayList,试试这个:

     ArrayList<ArrayList<Boolean>> checkBoxState=new ArrayList<ArrayList<Boolean>>(); 
    ArrayList<Boolean> boolList=new ArrayList<Boolean>();
    boolList.add(true);
    boolList.add(true);
    boolList.add(false);
    checkBoxState.add(boolList);
    checkBoxState.add(boolList);
    checkBoxState.add(boolList);
    checkBoxState.get(0).get(2)

答案 3 :(得分:0)

当您想使用嵌套的ArrayList时,您可以试试这个。我希望它有所帮助,当你初始化数组时,你需要填充内部。

ArrayList<ArrayList<Boolean>> checkBoxState = null;

    //filling the arrays you don't have to write boolean again in generics
    for (int i = 0; i < 10; i++) {
        checkBoxState= new ArrayList<>();
        checkBoxState.add(new ArrayList<>());
    }

    //You can fill the array how you want
    for (int i = 0; i < checkBoxState.size(); i++) {
        checkBoxState.get(i).add(true);
    }