在Java中对ArrayList <Integer>的数组进行排序

卢卡·纳塔利(Luca Natali)

我想按ArrayLists元素的第一个int对ArrayList的数组进行排序。我试图重写Comparator类的compare方法,但是它抛出:

Exception in thread "main" java.lang.NullPointerException
at BikeGA$1.compare(BikeGA.java:515)
at BikeGA$1.compare(BikeGA.java:1)
at java.util.TimSort.countRunAndMakeAscending(TimSort.java:351)
at java.util.TimSort.sort(TimSort.java:230)
at java.util.Arrays.sort(Arrays.java:1438)
at BikeGA.main(BikeGA.java:512)

代码是:

int max_generations = 20;
static ArrayList<Integer>[] population = new ArrayList[max_generations];

Arrays.sort(population, new Comparator<ArrayList<Integer>>(){
        @Override
        public int compare(final ArrayList<Integer> entry1, final ArrayList<Integer> entry2){
            return entry1.get(0).compareTo(entry2.get(0));
        }
    });

有人能帮我吗?谢谢。

他们是

您的Comparator应该处理null或empty ArrayList,以便它与您放入数组的任何数据一起使用:

    @Override
    public int compare(final ArrayList<Integer> entry1, final ArrayList<Integer> entry2){
        if (entry1 == null && entry2 == null)
            return 0;
        if (entry1 == null)
            return 1;
        if (entry2 == null)
            return -1;
        if (entry1.isEmpty() && entry2.isEmpty())
            return 0;
        if (entry1.isEmpty())
            return 1;
        if (entry2.isEmpty())
            return -1;
        return entry1.get(0).compareTo(entry2.get(0));
    }

这会将空元素放在数组的末尾,并将空列表放在它们的前面。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

按 ArrayList<Integer> 中的第三个元素对 ArrayList<ArrayList<Integer>> 进行排序

来自分类Dev

在Java中从int数组转换为Integer arraylist

来自分类Dev

以相反的顺序对Arraylist中的数组进行排序

来自分类Dev

在 Java 中对 HashMap <Integer, List<String>> 进行排序

来自分类Dev

如何对类型<Entry <Character,Integer >>的ArrayList进行排序?

来自分类Dev

在Java中对子数组进行反向排序

来自分类Dev

在Python中对数组数组进行排序

来自分类常见问题

如何在Java中对ArrayList进行排序

来自分类Dev

使用线程对Java中的ArrayList进行排序

来自分类Dev

在Java中按时间对ArrayList进行排序

来自分类Dev

如何在Java中对Arraylist进行排序

来自分类Dev

对整数数组的ArrayList进行排序

来自分类Dev

如何在java中对arraylist的ArrayList进行排序?

来自分类Dev

值是否在ArrayList <Integer>中?(Java)

来自分类Dev

如何在Java中对大于integer.max的数字进行排序

来自分类Dev

如何在ArrayList中存储2D Integer数组?

来自分类Dev

尝试对Java对象数组进行排序

来自分类Dev

尝试对Java对象数组进行排序

来自分类Dev

在Swift中对字典数组进行排序

来自分类Dev

在PHP中对依赖的子数组进行排序

来自分类Dev

在C ++中对结构数组进行排序

来自分类Dev

在Ruby中对哈希数组进行排序

来自分类Dev

在PHP中对多维数组进行排序

来自分类Dev

在D中对关联数组进行排序

来自分类Dev

“自然”对Ruby中的数组进行排序

来自分类Dev

在CUDA中对结构数组进行排序

来自分类Dev

在perl中对间隔数组进行排序?

来自分类Dev

在Erlang中对数组进行排序

来自分类Dev

在Julia中对数组进行排序

Related 相关文章

热门标签

归档