2013-02-18 48 views
-2

我需要按照字母順序打印Java包和子包。我這樣做了:Java包和子包按字母順序打印

import java.util.Arrays;

公共類J0602 { 公共靜態無效主要(字符串ARGS []){

Package[] packs = Package.getPackages(); 
    String[] packageNames =new String[packs.length]; 
    int i=0; 
    for (Package pack:packs){ 
     packageNames[i] = pack.getName(); 
     System.out.println(pack.getName()); 
     i++; 
    } 
    Arrays.sort(packageNames); 
} 

}

..但它不工作。有什麼我錯過包裹?爲什麼Arrays.sort();在這裏不行?

預先感謝您!

+0

你怎麼知道'Arrays.sort()'不起作用?你在所有'System.out.println()'輸出結果之後進行排序...... – jlordo 2013-02-18 12:40:09

+0

「它不起作用」太含糊。請顯示預期的產量和實際產量。 (並且在打印之後解決jlordo對排序的評論*) – 2013-02-18 12:40:13

+0

您可以嘗試將您的軟件包放在TreeSet中並遍歷該TreeSet。 – artfullyContrived 2013-02-18 12:42:32

回答

0

這可能是因爲您打印出元素後對數組進行排序。

嘗試這種方式

Arrays.sort(packageNames); 
for (Package pack:packs){ 
     System.out.println(pack.getName()); 
} 

或者你可以放棄你的陣列中的一個TreeSet,並通過它遍歷可見 TR

TreeSet<Package> packages = new TreeSet<Package>(Arrays.asList(packageNames)); 

然後

for (Package pack:packages){ 
    System.out.println(pack.getName()); 
} 

注意安排您的代碼,這將從您的陣列中刪除重複的包。

+0

非常感謝! – Waldo93 2013-02-18 13:34:45