java - Java,如何按对象字段对节点列表进行排序
问题描述
我创建了一个名为的类,该类myLinkedList
存储来自一个名为的类的节点,该类LinkNodes
将具有名称(字符串)的对象作为字段。我想从memberPlayer
字段中按字母顺序对列表中的节点进行排序firstName
public class LinkNode {
public memberPlayer player;
public LinkNode next;
public LinkNode() {
this(null, null);
}
public LinkNode(memberPlayer player) {
this(player,null);
}
public LinkNode(memberPlayer player, LinkNode next) {
this.player = player;
this.next = next;
}
public String toString() {
String result = player + " ";
if (next != null) {
result += next.toString();
}
return result;
}
}
我尝试过使用 collection.sort 方法,但是没有运气,因为我试图在我自己创建的列表上使用它,但是当我只使用对象时它工作得很好。如果我想访问节点内对象的字段,我需要做些什么特别的事情吗?
会员播放器类:
public class memberPlayer implements Comparable<memberPlayer>{
private String firstName;
private String lastName;
private int age;
private String team;
}
解决方案
您应该在 Comparable 接口中实现 compareTo 方法以使用特定字段。
@Override
public int compareTo(Object o) {
MemberPlayer player = (MemberPlayer)o;
return this.firstName.compareTo(player.firstName);
}
P:S 在命名类时始终使用正确的约定。
推荐阅读
- c# - 在 C# 中运行 Connect-MicrosoftTeams 时配置代理设置
- r - 用R语言构造十六进制字符串“\xc2”
- flutter - Flutter:直接将流放入 StreamBuilder 是不是很糟糕?
- javascript - Javascript 在 POST 表单之前替换 & 符号
- ffmpeg - 如何不在命令行中使用 ffpmeg image2pipe 工具?
- tensorflow - tf.nn.ctc_beam_search_decoder 返回奇怪的形状
- python - Raspberry PI 零 w PIR 发送到 Telethon
- python - 从一个分割列号创建多个数据框
- mongodb - 我需要哪些服务来设置后端?
- docker - 我的 Dockerize go 应用程序不工作。错误:/bin/sh: ./crawler: 未找到