Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将这些java collection.sort语句组合成一个?_Java_Sorting_For Loop_Collections - Fatal编程技术网

如何将这些java collection.sort语句组合成一个?

如何将这些java collection.sort语句组合成一个?,java,sorting,for-loop,collections,Java,Sorting,For Loop,Collections,我有这段代码,可以为不同的卡片套件(梅花、钻石、红心和黑桃)对我的ArrayList进行排序。有没有办法编写以下代码,这样我就不必为每个ArrayList编写代码 String clubsLabel = "Clubs"; String diamondsLabel = "Diamonds"; String heartsLabel = "Hearts"; String spadesLabel = "Spades"; C

我有这段代码,可以为不同的卡片套件(梅花、钻石、红心和黑桃)对我的ArrayList进行排序。有没有办法编写以下代码,这样我就不必为每个ArrayList编写代码

        String clubsLabel = "Clubs";
        String diamondsLabel = "Diamonds";
        String heartsLabel = "Hearts";
        String spadesLabel = "Spades";

        Collections.sort(clubs, new cardIdSorter());
        System.out.printf("%-12s", clubsLabel);
        for(PlayingCard clubsCard: clubs) {
            System.out.print(clubsCard);
        }

        System.out.println(" ");

        Collections.sort(diamonds, new cardIdSorter());
        System.out.printf("%-12s", diamondsLabel);
        for(PlayingCard diamondsCard: diamonds) {
            System.out.print(diamondsCard);
        }

        System.out.println(" ");

        Collections.sort(hearts, new cardIdSorter());
        System.out.printf("%-12s", heartsLabel);
        for(PlayingCard heartsCard: hearts) {
            System.out.print(heartsCard);
        }

        System.out.println(" ");

        Collections.sort(spades, new cardIdSorter());
        System.out.printf("%-12s", spadesLabel);
        for(PlayingCard spadesCard: spades) {
            System.out.print(spadesCard);
        }

为每个集合编写自定义方法和调用

public static void sortAndPrintCollection(Collection col,String var){   
Collections.sort(col, new cardIdSorter());
        System.out.printf("%-12s", var);
        for(PlayingCard p: col) {
            System.out.print(p);
        }}
用法示例

ClassName.collectionSorter(clubs,clubsLabel);

为每个集合编写自定义方法和调用

public static void sortAndPrintCollection(Collection col,String var){   
Collections.sort(col, new cardIdSorter());
        System.out.printf("%-12s", var);
        for(PlayingCard p: col) {
            System.out.print(p);
        }}
用法示例

ClassName.collectionSorter(clubs,clubsLabel);

定义这样一种方法-

public void sortAndPrint(ArrayList<PlayingCard> cards, String label) {
    Collections.sort(cards, new cardIdSorter());
    System.out.printf("%-12s", label);

    for(PlayingCard card: cards) {
        System.out.print(card);
    }
}
sortAndPrint(clubs, "Clubs");
sortAndPrint(diamonds, "Diamonds");
sortAndPrint(hearts, "Hearts");
sortAndPrint(spades, "Spades");

定义这样一种方法-

public void sortAndPrint(ArrayList<PlayingCard> cards, String label) {
    Collections.sort(cards, new cardIdSorter());
    System.out.printf("%-12s", label);

    for(PlayingCard card: cards) {
        System.out.print(card);
    }
}
sortAndPrint(clubs, "Clubs");
sortAndPrint(diamonds, "Diamonds");
sortAndPrint(hearts, "Hearts");
sortAndPrint(spades, "Spades");

将代码分隔为一个方法:

void sortAndPrint(List<PlayingCard> cards, String label) {
    Collections.sort(cards, new cardIdSorter());
    System.out.printf("%-12s", label);
    for(PlayingCard card: cards) {
        System.out.print(card);
    }
}

将代码分隔为一个方法:

void sortAndPrint(List<PlayingCard> cards, String label) {
    Collections.sort(cards, new cardIdSorter());
    System.out.printf("%-12s", label);
    for(PlayingCard card: cards) {
        System.out.print(card);
    }
}

我还没有测试过,但你可能会这样做

Map<> suites = new HashMap<String, ArrayList<PlayingCard>>() {{
    put("Clubs",clubs); put("Diamonds",diamonds); put("Hearts",hearts); put("Spades",spades);
}};

for (Map.Entry<String, ArrayList<PlayingCard>> entry : suites.entrySet()) {
    Collections.sort(entry.getValue(), new cardIdSorter());
    System.out.printf("%-12s", entry.getKey());
    for(PlayingCard card: entry.getValue()) {
        System.out.print(card);
    }
}
Map suites=newhashmap(){{
推杆(“梅花”,梅花);推杆(“钻石”,钻石);推杆(“红心”,红心);推杆(“黑桃”,黑桃);
}};
对于(Map.Entry:suites.entrySet()){
Collections.sort(entry.getValue(),new carddsorter());
System.out.printf(“%-12s”,entry.getKey());
用于(播放卡片:entry.getValue()){
系统输出打印(卡片);
}
}

欢迎来到Java,在Java中,重构代码以消除重复通常只会使代码更加难看。请注意,这将创建一个新的内部类来进行映射初始化。

我还没有对它进行测试,但您可能可以这样做

Map<> suites = new HashMap<String, ArrayList<PlayingCard>>() {{
    put("Clubs",clubs); put("Diamonds",diamonds); put("Hearts",hearts); put("Spades",spades);
}};

for (Map.Entry<String, ArrayList<PlayingCard>> entry : suites.entrySet()) {
    Collections.sort(entry.getValue(), new cardIdSorter());
    System.out.printf("%-12s", entry.getKey());
    for(PlayingCard card: entry.getValue()) {
        System.out.print(card);
    }
}
Map suites=newhashmap(){{
推杆(“梅花”,梅花);推杆(“钻石”,钻石);推杆(“红心”,红心);推杆(“黑桃”,黑桃);
}};
对于(Map.Entry:suites.entrySet()){
Collections.sort(entry.getValue(),new carddsorter());
System.out.printf(“%-12s”,entry.getKey());
用于(播放卡片:entry.getValue()){
系统输出打印(卡片);
}
}

欢迎来到Java,在Java中,重构代码以消除重复通常只会使代码更加难看。请注意,这将创建一个新的内部类来进行映射初始化。

插入元素时是否可以维护一个排序列表?请参阅:插入元素时,是否可以维护排序列表?见: