首页 > 解决方案 > 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;
}

标签: javasortingnodes

解决方案


您应该在 Comparable 接口中实现 compareTo 方法以使用特定字段。

 @Override 
 public int compareTo(Object o) {
   MemberPlayer player = (MemberPlayer)o;
   return this.firstName.compareTo(player.firstName);
 }

P:S 在命名类时始终使用正确的约定。


推荐阅读