【问题标题】:Two Dimensional Array | Java二维数组 |爪哇
【发布时间】:2015-10-30 16:21:07
【问题描述】:

我有创建二维数组的代码,但我想修改此代码,以便使用类 Integer 而不是 int;而不是数组,而是使用嵌套的 ArrayList。

我如何实现这一目标?谢谢。

public class Array {
   int[][] fillMatrix() {
      int[][] matrix = new int[5][4];
      for (int row = 0; row < 5; row++) {
          for (int column = 0; column < 4; column++) {
              matrix[row][column] = row * column;
          }
      }
      return matrix;
   }
}

【问题讨论】:

    标签: java arrays matrix arraylist nested


    【解决方案1】:

    你只需要一个

    List<List<Integer>> matrix;
    

    这是一个列表的列表。所以 0 位置将根据实现保存列/行。

    你的代码应该是这样的

    List<List<Integer>> matrix = new ArrayList<List<Integer>>;
        for (int row = 0; row < 5; row++) {
            matrix.add(new ArrayList<Integer>())
            for (int column = 0; column < 4; column++) {
                 matrix.get(row).add(row * column);
            }
        }
        return matrix;
    }
    

    未经测试的 PS 代码可能需要小幅调整,但它应该提供一个很好的指导。

    【讨论】:

    • 那么喜欢-ArrayList&lt;Integer&gt;[][] matrix = new ArrayList[1][1]; matrix[0][0] = new ArrayList&lt;Integer&gt;(); //matrix[0][0].add(1);?
    【解决方案2】:
    import java.util.ArrayList;
    import java.util.List;
    
    public class Array {
        List<ArrayList<Integer>> matrix = new ArrayList<ArrayList<Integer>>();
    
        List<ArrayList<Integer>> fillMatrix() {
            for (int row = 0; row < 5; row++) {
                matrix.add(new ArrayList<Integer>());
                for (int column = 0; column < 4; column++) {
                    matrix.get(row).add(column,  row * column);
                }
            }
            return matrix;
        }
    }
    

    【讨论】:

    • 糟糕,我应该在添加这个答案之前刷新一下......哦,好吧!
    • 谢谢!如何在主方法中调用该方法? @aragorn
    • public static void main(String[] args) { new Array().fillMatrix(); }
    • 这个matrix.get(row).add(column, row * column);可以改为matrix.get(row).add(row * column);随着列顺序增加...
    猜你喜欢
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 2011-01-07
    • 1970-01-01
    • 2018-02-06
    相关资源
    最近更新 更多