如何制作通用的排序方法来对多种类型的ArrayList的HashMap进行排序?

时间:2018-08-20 21:49:41

标签: java sorting arraylist hashmap

我试图选择对ArrayLists的传递的HashMap进行排序,但是有点卡住了。我不确定如何使它成为适用于int,double和string的通用方法。我看过过去与此类似的问题,但我仍然不明白。感谢您的帮助或指导。

public static HashMap sort_list(HashMap lists) {

    HashMap sorted_lists = new HashMap();

    ArrayList<Integer> sorted_ints = new ArrayList<>();
    ArrayList<Double> sorted_doubles = new ArrayList<>();
    ArrayList<String> sorted_strings = new ArrayList<>();

    ArrayList list_of_ints = (ArrayList) lists.get("ints");
    ArrayList list_of_doubles = (ArrayList) lists.get("doubles");
    ArrayList list_of_strings = (ArrayList) lists.get("strings");

    //My sort code below (which doesn't work with this implementation)
    int min;

    for(int i = 0; i < arr.size() - 1; i++) {

        min = i;

        for(int j = i + 1; j < arr.size(); j++) {

            if(arr.get(j) < arr.get(min)) {
                min = j;
            }
        }

        int temp = arr.get(min);
        arr.set(min, arr.get(i));
        arr.set(i, temp);
    }
    // return hashmap
    return sorted_lists;
}

1 个答案:

答案 0 :(得分:4)

如果Lists中的元素实现了List接口,Java已经提供了对Comparable进行排序的功能。它称为Collections.sort check it out。这是进行“通用排序”的正确方法:完全像Collections.sort所要求的那样实现适当的接口。