gpt4 book ai didi

java - 使用父级对链式对象进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:36:39 24 4
gpt4 key购买 nike

我们有类别列表,其中每个类别都可以有父字段,它是对当前类别父类别的引用。你能告诉我什么是 java 中对类别进行排序的最佳算法,例如从顶部到底部类别?谢谢。

@Table
@Entity
public class Category {
@Id
Long id;
@ManyToOne
Category parent;
}

示例:

list :

  • 类别(id=3,父=类别(id=11))
  • 类别(id=4,父=类别(id=3))
  • 类别(id=11,父=类别(id=20,父=null))

会像这样从上到下排序:

类别(id=20) -> 类别(id=11) -> 类别(id=3) -> 类别(id=4)

enter image description here

最佳答案

假设您有 List.您可以使用 Collections.sort(); 对该列表进行排序;但是你的类必须稍微改变一下,因为你必须实现 Comparable 并覆盖 compareTo() 方法。这是一个示例,希望对您有所帮助。

public class Category implements Comparable<Category>{
Long id;
Category parent;
// Constructors getters setters
public int compareTo(Category aux){
// Assuming you want to sort by parent's id, and I understand a category
// maybe doesn't have parent it may be null
if(aux.getParent() != null && this.parent != null){
if(aux.getParent().getId() > this.parent.getId()) return -1;
else if(aux.getParent().getId() < this.parent.getId()) return ;
return 0;
}
if(aux.getParent() == null && this.parent.getId() == null) return 0;
if(aux.parent() == null) return 1;
return 0;
}
}

关于java - 使用父级对链式对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56684396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com