按整数列表对字符串列表进行排序

运动的

我是 Java 新手。这里肯定有人问过这个问题,但我不确定是哪个问题。考虑这个 Java 代码片段。

ArrayList<String> names = new ArrayList<>();
ArrayList<Integer> ages = new ArrayList<>();

names.add("John");
names.add("Kate");
names.add("Bob");

ages.add(27);
ages.add(24);
ages.add(32);

如何排序namesagesnames应该是新的["Kate", "John", "Bob"]

蒂姆·比格莱森

一种方法是使用名称作为键和年龄作为值来填充哈希图。然后,使用此查找映射进行排序。

Map<String, Integer> map = new HashMap<>();
for (int i=0; i < names.size(); ++i) {
    map.put(names.get(i), ages.get(i));
}
Collections.sort(names, (a, b) -> map.get(a).compareTo(map.get(b)));

正如其他一些评论和答案所暗示的那样,您还可以创建一个人员类,将姓名和年龄存储在单个逻辑对象中。然后,编写一个根据年龄排序的比较器。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章