java - 根据索引对列表中的字符串进行排序
问题描述
如果我有一个ArrayList
字符串
["bb", "ab", "cf", "aa"]
,我如何按第一个或第 n 个索引及以后的字母顺序排序(如果第一个索引与其他字符串相同)?有没有我可以使用的方法?
上面的列表,我希望 index = 1
["aa", "bb", "ab", "cf"]
另一个例子是
["bab", "baa", "abbe", "cff"]
会回来
["baa", "bab", "abbe", "cff"]
解决方案
您可以使用Comparator.comparingInt
执行此排序:
使用索引0
对数组进行排序:
String[] s = {"bb", "ab", "cf", "aa"};
Arrays.sort(s, Comparator.comparingInt(s1 -> s1.charAt(0)));
Arrays.asList(s).forEach(System.out::println);
或排序列表:
List<String> s = Arrays.asList("bb", "ab", "cf", "aa");
s.sort(Comparator.comparingInt(s2 -> s2.charAt(0)));
s.forEach(System.out::println);
输出:
ab aa bb cf
否则使用索引1
排序数组:
String[] s = {"bb", "ab", "cf", "aa"};
Arrays.sort(s, Comparator.comparingInt(s2 -> s2.charAt(1)));
Arrays.asList(s).forEach(System.out::println);
或索引 1 用于排序列表
List<String> s = Arrays.asList("bb", "ab", "cf", "aa");
s.sort(Comparator.comparingInt(s2 -> s2.charAt(1)));
s.forEach(System.out::println);
输出:
aa bb ab cf
PS:你质疑java
,但你strings
和array
喜欢javascript
..
推荐阅读
- azure - 地理复制-我想知道我们是否对地理复制有任何限制,例如数据库的最大大小
- javascript - 在服务器上找不到 Js 和 css 文件但在本地工作
- javascript - 通过具有多个占位符和 SELECT 的 NodeJS 批量插入到 MYSQL
- flutter - Flutter Objectbox 性能问题
- r - 为什么会出现结构方程建模错误?
- python - 错误:(-215:断言失败)| 停止迭代:#2526
- android - 使用无头 JS 为 android 反应原生计步器
- php - 如何在 PHP 中将图像添加到 SQL Server
- android - 在用户使用 Paging3 滚动时刷新数据 - RemoteMediator
- google-apps-script - Google App Script - TypeError - 无法读取未定义的属性“长度”