首页 > 解决方案 > 对 ArrayList 进行排序按字母顺序

问题描述

我对 java 比较陌生,想知道如何按字母顺序对 String[] 类型的 ArrayList 进行排序。在这种情况下,我的 ArrayList 名称是 temp。基本上 String[] 将包含 3 个元素:String a、String b 和 String c。我想根据字符串 a 对数组列表进行排序。我正在使用 Java 10。

我已经尝试过了,但它不起作用

ArrayList<String[]> temp = somefunction();
Collections.sort(temp);

这是显示的错误:

sort(java.util.List<T>) in Collections cannot be applied 
      to(java.util.ArrayList<java.lang.String[]>)

 

标签: javasortingarraylist

解决方案


该方法Collections.sort被参数化,T这意味着条件<T extends Comparable<? super T>>应该被满足。String[]不符合要求,因为它没有扩展Comparable.

Collections.<String[]>sort(new ArrayList<>());
Collections.<String>sort(new ArrayList<>());

Collections.sort(List, Comparator)当我们想要对不可比较的值进行排序时,我们会使用它。

Collections.sort(new ArrayList<>(), (String[] a1, String[] a2) -> 0);
Collections.<String[]>sort(new ArrayList<>(), (a1, a2) -> 0);

当然,您应该用(String[] a1, String[] a2) -> 0真实的比较器替换一个模拟比较器(它只是将所有元素视为相同)。


推荐阅读