如何使用1d数组填充2d数组?

时间:2015-02-17 14:50:42

标签: java arrays string

我正在尝试用java在2d数组中放置一维数组。使用我调用的方法,我将传递我将从中收集数据的列表以及我想要传递信息的2d数组。在创建了一组字符串之后,我将句子解剖为2,将字符放入shingleSet中。从shingleSet我必须将字符串转换为数组,对数据进行排序,然后将排序后的数组保存到2d数组中。我遇到的问题是我可以加载数组,但我只能在本地加载它。我是否必须从方法中返回一个二维数组?

private static void sentenceToShingles(int n, String[][] stringArray, List list){
    int i, j;
    String e;
    String [] newShingle;
    int counter = 0;
    stringArray = new String [n][];
    for(Object o: list){
        //for every sentence create a new hashset
        Set<String> shingleSet = new HashSet();
        e = (String) o;
        i=0;
        while((i+2) < e.length()){
            for(j=0;j<2;j++){
               shingleSet.add(e.substring(i, i+2));  
            } 
            i++;      
        }    

        //add to array and sort ?RETURNING?
        newShingle = shingleSet.toArray(new String[shingleSet.size()]);
        Arrays.sort(newShingle);

        //?? How can I save newShingle into 2d array??

        //print shingle sorted shingle array
        for(j=0; j<newShingle.length; j++){
            System.out.print(newShingle[j] + " ");
        } 
       System.out.println();
    }        
    System.out.println();              
}

1 个答案:

答案 0 :(得分:0)

要从方法返回数组,请将方法签名从private static void更改为private static String[][]在代码末尾添加一个return语句:return stringArray;

<强>更新

要填充2D数组,您需要遍历每一行和每列:

for(int row = 0; row < targetArray.length; row++) {
    for(int col = 0; col < targetArray[row].length; col++) {
        targetArray[row][col] = sourceArray[row];
    }
}