小编fri*_*zle的帖子

带有限制和自定义比较器的部分排序集合

我想像这样对一个名为 imageList 的 ArrayList 进行排序:

Collections.sort(imageList, new MapComparator(Function.KEY_TIMESTAMP, "dsc"));
Run Code Online (Sandbox Code Playgroud)

这工作正常,但现在我希望能够设置一个限制(只显示最新的 100 张图像,其中 ArrayList 未排序,所以简单地创建一个子列表是行不通的)出于性能原因。

我的 MapComparator 类如下所示:

class MapComparator implements Comparator<HashMap<String, String>>
{
    private final String key;
    private final String order;

    public MapComparator(String key, String order)
    {
        this.key = key;
        this.order = order;
    }

    public int compare(HashMap<String, String> first,
                       HashMap<String, String> second)
    {
        String firstValue = first.get(key);
        String secondValue = second.get(key);
        if(this.order.toLowerCase().contentEquals("asc"))
        {
            return firstValue.compareTo(secondValue);
        }else{
            return secondValue.compareTo(firstValue);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道如何实现?提前致谢!

java collections comparator

5
推荐指数
1
解决办法
1291
查看次数

标签 统计

collections ×1

comparator ×1

java ×1