将2D数组转换为1D数组

这是我到目前为止的代码:

public static int mode(int[][] arr) { ArrayList list = new ArrayList(); int temp = 0; for(int i = 0; i < arr.length; i ++) { for(int s = 0; s < arr.length; s ++) { temp = arr[i][s]; 

关于如何将[i][s]变成单维数组,我似乎陷入了困境。 当我执行print(temp) ,我的2D数组的所有元素按顺序打印出一次,但无法弄清楚如何将它们放入1D数组。 我是新手:(

如何将2D数组转换为1D数组?

我正在使用的当前2Darrays是3×3。 我试图找到2D数组中所有整数的数学模式,如果该背景具有任何重要性。

你几乎做对了。 只是一个微小的变化:

 public static int mode(int[][] arr) { List list = new ArrayList(); for (int i = 0; i < arr.length; i++) { // tiny change 1: proper dimensions for (int j = 0; j < arr[i].length; j++) { // tiny change 2: actually store the values list.add(arr[i][j]); } } // now you need to find a mode in the list. // tiny change 3, if you definitely need an array int[] vector = new int[list.size()]; for (int i = 0; i < vector.length; i++) { vector[i] = list.get(i); } } 

改成:

  for(int i = 0; i < arr.length; i ++) { for(int s = 0; s < arr[i].length; s ++) { temp = arr[i][s]; 

“如何将2Darrays转换为一维arrays?”

  String[][] my2Darr = .....(something)...... List list = new ArrayList<>(); for(int i = 0; i < my2Darr.length; i++) { list.addAll(Arrays.asList(my2Darr[i])); // java.util.Arrays } String[] my1Darr = new String[list.size()]; my1Darr = list.toArray(my1Darr); 

我不确定您是否尝试将2D数组转换为1D数组(如问题所述),或者将2D数组中的值放入您拥有的ArrayList中。 我假设第一个,但我会很快说出你需要做的就是调用list.add(temp) ,尽管你当前的代码中实际上不需要temp

如果你想要一个1D数组,那么下面的代码就足够了:

 public static int mode(int[][] arr) { int[] oneDArray = new int[arr.length * arr.length]; for(int i = 0; i < arr.length; i ++) { for(int s = 0; s < arr.length; s ++) { oneDArray[(i * arr.length) + s] = arr[i][s]; } } }