java - 实现 Comparable 以使用字符串按字母顺序排序

标签 java interface comparable implements alphabetical-sort

我希望对象具有可比性(在这种情况下在 TreeSet 中使用它)。

我的对象有一个名称字段,我希望它按字母顺序排序。

我首先想到我可以使用字符串的 unicode 值并简单地做一个减法,但是 AA 会在 Ab 之后,例如……

我是这样开始的:

public final class MyObject implements Comparable<MyObject> {

 private String name;

 public MyObject(String name) {
  this.name = name;
 }

 public String name() {
  return name;
 }

 @Override
 public int compareTo(MyObject otherObject) {
  return WHAT DO I PUT HERE ?;
 }
}

感谢愿意提供帮助的人, 祝你有美好的一天!

最佳答案

你想多了。 String 有自己的自然顺序,即字母顺序,因此您可以像这样使用 String.compareTo:

@Override
public int compareTo(MyObject otherObject) {
    return this.name.compareTo(otherObject.name);
}

关于java - 实现 Comparable 以使用字符串按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22871583/

相关文章:

java - 实现与 2 个枚举相当

java - 不同版本的依赖支持 :design

java - 多值属性的文本输入

java - 如何集成来自两个不同 NLP 工具的两个解析树数据结构

java - 如何在java中的抽象类中实现接口(interface)并扩展线程

java - 错误 : Could not find or load main class

java - 我应该使用哪种布局来按顺序用 JButton 填充 JLayeredPane?

ios - 选项卡栏 Controller 中的工具栏

java - 使用 TreeNodes 扩展 Comparable 的广度优先二叉树搜索