Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从二维数组复制1列并将其放入一维数组_Java_Arrays_String - Fatal编程技术网

Java 如何从二维数组复制1列并将其放入一维数组

Java 如何从二维数组复制1列并将其放入一维数组,java,arrays,string,Java,Arrays,String,我试图将2d数组中的1列的名称放入名为names的字符串1d数组中,但重复了5次。我似乎不能让它出现一次,我能做些什么来解决这个问题 // a 2d array list obtained from a file Monica - 23 Mike - 24 Adam - 44 Mark - 78 Beth - 78 公共静态字符串[]sortName(字符串[][]数据){ //对名称进行排序并将其放入1d数组中 //[行][col] 字符串[]名称=新字符串[5]; 对于(int n=0;n

我试图将2d数组中的1列的名称放入名为names的字符串1d数组中,但重复了5次。我似乎不能让它出现一次,我能做些什么来解决这个问题

// a 2d array list obtained from a file
Monica - 23
Mike - 24
Adam - 44
Mark - 78
Beth - 78
公共静态字符串[]sortName(字符串[][]数据){
//对名称进行排序并将其放入1d数组中
//[行][col]
字符串[]名称=新字符串[5];
对于(int n=0;n

名称数组的长度为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;
}
公共静态字符串[]sortName(字符串[][]数据)
{
//对名称进行排序并将其放入1d数组中
//[行][col]

String[]names=new String[data.length];//你能把2D数组放在示例中吗:“Monica-23”不是2D数组,因为String 2D数组像[[“hello”,“world”],[“sample”,“world”]]。为什么你需要两个循环,只需对行数进行迭代,每行只需获取数据[i][0];您的名称数组的长度为5,因此它将在第一个循环中循环5次。
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;
}