你怎么能转换成一个二维数组在Java中的一维数组 [英] How can you convert a 2 dimensional array into a 1 dimensional array in Java

查看:116
本文介绍了你怎么能转换成一个二维数组在Java中的一维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道如何将一个2维阵列转换成1维阵列。我想出了一些code,但它并不完全似乎工作。是否有人可以帮助我吗?谢谢你。

 公共类TESTER1 {    / **
     * @参数ARGS
     * /    静态的String [] []数据=新的String [] [] {{姆,Dumer,蠢}};    公共静态无效的主要(字串[] args){        convertData(数据);
    }    公共静态无效convertData(字符串[] []数据){
        的String [] = toReturn新的String [data.length]
        的for(int i = 0; I< data.length;我++){
            为(中间体J = 0; J&下; 3; J ++){
                toReturn [I] =数据[I] [J]。
            }
        }
        对于(一个String:toReturn){
            的System.out.println(多个);
        }
    }
}

非常感谢你。是有可能每一行转换的字符串[] []为
在String一个指数[]例如,如果我们转换的String [] [](上述code),那么当
我打印出数组[0]应该打印出来达姆,鼓手,最愚蠢的


解决方案

 公共静态的String []拉平(字符串[] []数据){
    ArrayList的<串GT;名单=新的ArrayList<串GT;();    的for(int i = 0; I< data.length;我++){
        对于(INT J = 0; J<数据[I]。长度; J ++){
            list.add(数据[I] [J]);
        }
    }    返回list.toArray(新的String [0]);
}

或者一次添加整个行:

 的for(int i = 0; I< data.length;我++){
        list.addAll(Arrays.asList(数据由[i]));
    }

编辑:
从我的回答评论,好像这是什么OP想要的(即二维数组的每一行转换成一些字符串重新它presentation):

 公共静态的String [] rowsToString(字符串[] []数据){
    ArrayList的<串GT;名单=新的ArrayList<串GT;();    的for(int i = 0; I< data.length;我++){
        字串行= Arrays.toString(数据由[i]);
        list.add(row.substring(1,row.length() - 1));
    }    返回list.toArray(新的String [0]);
}

I would like to know how to convert a 2 dimensional array into a 1 dimensional array. I have come up with some code but it doesn't exactly seem to work. Can someone please help me? Thanks.

public class TESTER1 {

    /**
     * @param args
     */

    static String[][] data = new String[][] {{"Dum","Dumer","Dumbest"}};

    public static void main(String[] args) {

        convertData(data);
    }

    public static void convertData(String[][]data) {
        String[] toReturn = new String[data.length];
        for(int i = 0;i<data.length;i++) {
            for(int j = 0;j<3;j++){
                toReturn[i] = data[i][j];
            }
        }
        for(String s:toReturn) {
            System.out.println(s);
        }
    }
}

[edit]Thank you very much. Is it possible to convert each row in the String[][] into a index in a String[] for example if we convert the String[][] (above code), then when i print out array[0] it should print out dum,dummer,dumbest [edit]

解决方案

public static String[] flatten(String[][] data) {
    ArrayList<String> list = new ArrayList<String>();

    for(int i = 0; i < data.length; i++) {
        for(int j = 0; j < data[i].length; j++){
            list.add(data[i][j]);
        }
    }

    return list.toArray(new String[0]);
}

Or add whole rows at one time:

    for(int i = 0; i < data.length; i++) {
        list.addAll( Arrays.asList(data[i]) );
    }

Edit: From comments on my answer it seems like this is what the OP wanted (i.e. converting each row of 2d array to some string representation of it):

public static String[] rowsToString(String[][] data) {
    ArrayList<String> list = new ArrayList<String>();

    for(int i = 0; i < data.length; i++) {
        String row = Arrays.toString(data[i]);
        list.add( row.substring(1, row.length()-1) );
    }

    return list.toArray(new String[0]);
}

这篇关于你怎么能转换成一个二维数组在Java中的一维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆