排序 LinkedList<MyClass> [重复]

Posted

技术标签:

【中文标题】排序 LinkedList<MyClass> [重复]【英文标题】:Sorting LinkedList<MyClass> [duplicate] 【发布时间】:2016-04-22 10:52:27 【问题描述】:

如何使用list1.sort(); 方法对list1MyClass 类型的对象进行排序

如果我希望根据 Priority int 值对列表进行排序? 所以 MyClass 对象具有最大优先级将在 LinkedList list1 中的索引 0 处。

LinkedList&lt;MyClass&gt; list1 = new LinkedList&lt;&gt;();

这就是 MyClass 的样子,它没有 Overriden 方法。

public class MyClass     
    int id;
    int LeftTime;
    int Priority;
    int Rasp;

    public Dretva(int[] lista) 
        this.id = lista[1];
        this.LeftTime = lista[2];
        this.Priority = lista[3];
        this.Rasp = lista[4];
    

    public String toString()
        return String.format("%d/%d/%d", id, Priority ,LeftTime);
    

【问题讨论】:

编写自定义比较器。 实现Comparator 供您的班级使用Collections.sort() 【参考方案1】:

您可以像这样编写自定义比较器:

static class MyClassComparator implements Comparator<MyClass>
 
     public int compare(MyClass c1, MyClass c2)
     
         return c1.getPriority().compareTo(c2.getPriority());
     
 

然后使用Collections.sort(list1,new MyClassComparator());

【讨论】:

以上是关于排序 LinkedList<MyClass> [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何对c ++上的指针列表进行排序?

arrayList和linkedList在排序上的区别

LinkedList 中的 C# 基数排序实现

LinkedList按字母顺序排序[复制]

如何对 LinkedList 的字符串数据进行排序

基于LinkedList实现桶排序