java - 对 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[]>)
解决方案
该方法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
真实的比较器替换一个模拟比较器(它只是将所有元素视为相同)。
推荐阅读
- php - 从标头 cURL php 中检索响应代码
- c# - Puppeteer-sharp:页面从 browser.NewPageAsync() 崩溃
- java - Java WS 获取 SOAP 请求 CDATA 正文
- c++ - std::forward 行为不同
- android - 尝试将图像添加到 Firebase 存储文件夹失败
- flutter - 发生了逃避。断言失败:'path.isNotEmpty' 文档路径必须是非空字符串
- python - matplotlib 以轴为单位设置 ylim
- dcmtk - DCMTK 存储 SCU TCP I/O 错误 - 现有连接被远程主机强行关闭。)发生在例程中:writeDataPDU
- c++ - 如何阅读此声明 int (*(*f2)(int n))[3];
- sql - 遵循连接:递归查询