首页 > 解决方案 > 如何从二维数组复制 1 列并将其放入一维数组

问题描述

我正在尝试将 1 列的名称从 2d 数组放入一个名为 names 的 String 1d 数组中,但它会重复 5 次。我似乎无法让它出现一次,关于我能做些什么来解决这个问题的任何想法?

// a 2d array list obtained from a file
Monica - 23
Mike - 24
Adam - 44
Mark - 78
Beth - 78
public static String [] sortName (String [] [] data) {

        // Sort the names and put it in a 1d array

        //[rows] [col]

        String [] names = new String [5];
        for (int n = 0; n < names.length; n++) {
            for (int q = 0; q < 5; q++ ) {
            names [n] = data[q] [0];

                // Print to see if it works
              System.out.println(names[n]);
                    }
              }

        return names;
    }
//output
Monica
Mike
Adam
Mark
Beth
Monica
Mike
Adam
Mark
Beth
Monica
Mike
Adam
Mark
Beth
Monica
Mike
Adam
Mark
Beth
Monica
Mike
Adam
Mark
Beth

标签: javaarraysstring

解决方案


您的名称数组的长度为 5,因此它将在您的第一个循环中循环 5 次。您需要将其更改为 data.length 。

您需要将其更改为:

public static String[] sortName(String[][] data)
{
    // Sort the names and put it in a 1d array
    // [rows] [col]

    String[] names = new String[data.length]; // <------ This needs to be the data.length and not 5.

    for (int n = 0; n < names.length; n++)
    {
        for (int q = 0; q < data.length; q++)
        {
            names[n] = data[q][0];

            // Print to see if it works
            System.out.println(names[n]);
        }
    }

    return names;
}

推荐阅读