How do I loop thorough a 2D ArrayList in Java and fill it?

前端 未结 3 1098
悲哀的现实
悲哀的现实 2021-01-16 16:14

I am trying to use 2D arrayLists in Java. I have the definition:

ArrayList> myList = new ArrayList

        
相关标签:
3条回答
  • 2021-01-16 16:20

    You can use a nested for loop. The i-loop loops through the outer ArrayList and the j-loop loops through each individual ArrayList contained by myList

    for (int i = 0; i < myList.size(); i++)
    {
        for (int j = 0; j < myList.get(i).size(); j++)
        {
            // do stuff
        } 
    }
    

    Edit: you then fill it by replacing // do stuff with

    myList.get(i).add(new Integer(YOUR_VALUE)); // append YOUR_VALUE to end of list
    

    A Note: If the myList is initially unfilled, looping using .size() will not work as you cannot use .get(SOME_INDEX) on an ArrayList containing no indices. You will need to loop from 0 to the number of values you wish to add, create a new list within the first loop, use .add(YOUR_VALUE) to append a new value on each iteration to this new list and then add this new list to myList. See Ken's answer for a perfect example.

    0 讨论(0)
  • 2021-01-16 16:27

    Assuming the matrix is not initialized,

    int m = 10, n = 10;
    ArrayList<ArrayList<Integer>> matrix = new ArrayList<ArrayList<Integer>>();
    
    for (int i = 0; i < m; i++) {
        List<Integer> row = new ArrayList<Integer>();
        for (int j = 0; j < n; j++) {
            row.add(j);
        }
        matrix.add(row);
    }
    
    0 讨论(0)
  • 2021-01-16 16:34

    Use for-each loop, if you are using Java prior 1.5 version.

    for(ArrayList<Integer> row : myList) {
    
      for(Integer intValue : row) {
    
         // access "row" for inside arraylist or "intValue" for integer value.
    
      }
    
    }
    
    0 讨论(0)
提交回复
热议问题