2016-09-17 39 views
1

我想排序在java中的2d字符串數組的每一行。如何使用Arrays.sort對java中的2d String數組中的每一行進行排序?

例如,如果陣列包含:

ZCD 
BFE 
DZA 

我希望它被分類爲:

CDZ 
BEF 
ADZ 

代碼

private String[] commonCollections; 

private int comparisons = 0; 

public Comparable[] findCommonElements(Comparable[][] collections){ 

    for(int i = 0; i < collections.length; i++){ 
     Arrays.sort(collections[i]); 
    } 

    for(int i = 0; i <collections[0].length; i++){ 
     System.out.print(collections[0][i] + "\n"); 
    } 

    return commonCollections; 
} 

謝謝。有了上面的代碼,由於某種原因它沒有進行排序。

+0

那有什麼輸出?如果你指的是返回一個空數組,那是因爲你返回一個空數組。您不會初始化commonCollections。請明確你的意思。 –

+0

您如何儲存元素..我們可以假設並回答..更好來自你。 – YoungHobbit

回答

2

你的排序似乎很好。你打印的方式是問題。

這是你想要的嗎?

public class Main { 


    public static Comparable[][] findCommonElements(Comparable[][] collections){ 


     for(int i = 0; i < collections.length; i++){ 
      Arrays.sort(collections[i]); 

     } 

     return collections; 
    } 

    public static void main(String[] args) { 

    Character [][]input= {{'Z','C','D'},{'B','F','E'},{'D','Z','A' }}; 

    Comparable[][] output = findCommonElements(input); 

    for(int i = 0; i <output.length; i++){ 
     System.out.print(Arrays.toString(output[i]) + "\n"); 
    }  
    } 
} 

其中產生這樣的輸出:

[C,d,Z] [B,E,F] [A,d,Z]

+0

嘿,很好,趕上! –

0

你已經幾乎完成了它,你可以通過調試來修復您的代碼。

這裏是java8做法流

char[][] arr = { { 'Z', 'C', 'D' }, { 'B', 'F', 'E' }, { 'D', 'Z', 'A' } }; 
    char[][] sorted = IntStream.range(0, arr.length).mapToObj(i -> arr[i]).peek(x -> Arrays.sort(x)).toArray(char[][]::new); 
    for (char[] js : sorted) 
     System.out.println(Arrays.toString(js)); 

輸出

[C, D, Z] 
[B, E, F] 
[A, D, Z] 
相關問題