【问题标题】:Java Packages and Subpackages printed in alphabetical orderJava包和子包按字母顺序打印
【发布时间】:2013-02-02 21:26:24
【问题描述】:

我需要按字母顺序打印 Java 的包和子包。我这样做了:

导入 java.util.Arrays;

公共类 J0602 { public static void main (String 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();在这里不行吗?

提前谢谢你!

【问题讨论】:

  • 你怎么知道Arrays.sort() 不起作用?您正在对所有 System.out.println() 输出进行排序...
  • “它不起作用”太模糊了。请显示预期输出和实际输出。 (并解决 jlordo 对打印后 进行排序的评论...)
  • 您可以尝试将您的包放入 TreeSet 并遍历该 TreeSet。

标签: java sorting packages


【解决方案1】:

这可能是因为您在打印出元素后对数组进行排序。

尝试以这种方式排列您的代码

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());
}

请注意,这将从您的阵列中删除重复的包。

【讨论】:

    猜你喜欢
    • 2020-04-01
    • 2017-10-09
    • 2020-08-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    相关资源
    最近更新 更多