当前位置:  开发笔记 > 编程语言 > 正文

在Java中同时对三个ArrayLists进行排序的最有效方法是什么?

如何解决《在Java中同时对三个ArrayLists进行排序的最有效方法是什么?》经验,为你挑选了1个好方法。

我有三个ArrayLists.其中一个Strings- 名字和两个Integers- 得分和图片编号.我想通过球员得分(从最高到最低)同时对它们进行排序.现在我使用一个简单的冒泡排序,但我认为当Lists它更大时它将不会有效.

这是我的代码:

public class MyBubbleSort {

    public static void bubble_srt(List score, List name, List pic) {
        int n = score.size();
        int k;
        for (int m = n; m >= 0; m--) {
            for (int i = 0; i < n - 1; i++) {
                k = i + 1;
                if (score.get(i) < score.get(k)) {
                    swapNumbers(i, k, score, name, pic);
                }
            }
            printNumbers(score);
        }
    }

    private static void swapNumbers(int i, int j, List score, List name, List pic) {

        int temp;
        temp = score.get(i);
        score.set(i, score.get(j));
        score.set(j, temp);

        String s;
        s = name.get(i);
        name.set(i, name.get(j));
        name.set(j, s);

        int p;
        p = pic.get(i);
        pic.set(i, pic.get(j));
        pic.set(j, p);

    }

    private static void printNumbers(List input) {

        for (int i = 0; i < input.size(); i++) {
            System.out.print(input.get(i) + ", ");
        }
        System.out.print("\n");
    }

}

谢谢!



1> Eran..:

最好的方法是创建一个包含得分,名称和图片属性的类,并拥有该类的一个列表,您可以使用该列表进行排序,Collections.sortComparator根据得分属性比较您的类的两个实例.

与其他排序算法(合并排序,快速排序)相比,冒泡排序效率低,并且不需要自己实现排序算法,因为标准Java包已经为您执行了此操作.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有