【问题标题】:How To Convert a 1-D Array into a 2-D Array如何将一维数组转换为二维数组
【发布时间】:2009-03-20 03:54:00
【问题描述】:

我已经有了如何将二维一维转换为一维的代码,但我不知道如何反之亦然。这是我的代码:

package laboratorio9;

import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
    int A[][];
    int B[];
    int n;
    int m;
    int nb = 0;

    System.out.println("Enter the number of lines in your array.");
    n = entrada.nextInt();

    System.out.println("Enter the number of columns in your array.");
    m = entrada.nextInt();

    A = new int[m][n];
    B = new int[m*n];

    for (int i = 0; i < m; i++) {
      for (int j = 0; j < n; j++) {
        System.out.println("Enter A["+i+"]["+j+"]");
        A[i][j] = entrada.nextInt();
      }
    }
    System.out.println();

    for (int i = 0; i < m;i++) {
      for (int j = 0; j < n; j++) {
        B[nb] = A[i][j];
        nb++;
      }
    }

    for (int i = 0; i < m*n; i++) {
      System.out.println(B[i] + "  ");
    }
    System.out.println();

    Boolean Swap = false;

    do {
      Swap = false;
      for (int i=0;i<B.length-1;i++)
        if (B[i] > B[i + 1]) {
          int Temp = B[i];
          B[i] = B[i + 1];
          B[i + 1] = Temp;
          Swap = true;            
        }
    } while (Swap);

    for (int i=0;i<B.length;i++)
      System.out.println(B[i]);
  }
}

【问题讨论】:

  • 如果你的代码格式正确会很整洁
  • 天哪,我不是为了你。这是 100% 可行的问题,解决它会让你成为更好的程序员。

标签: java arrays


【解决方案1】:

你正在寻找类似的东西:

int j = 0;
int k = 0;
for ( int i = 0; i < nb;i++)
{
    C[j][k] = B[i];
    k++;
    if( k >= n )
    {
        j++;
        k = 0;
        if( j >= m )
            throw Error();
    } 
}

等同于:

int k = 0;
for ( int i = 0; i < m;i++)
{
    for ( int j = 0; j < n;j++)
    {
        C[i][j] = B[k++];
    }
}

但试图帮助更多地解释这个概念。

【讨论】:

    猜你喜欢
    • 2011-07-05
    • 2015-07-16
    • 2016-02-18
    • 2018-02-19
    • 1970-01-01
    • 2020-03-26
    相关资源
    最近更新 更多