实现Comparable以使用字符串进行字母排序

Sil*_*uck 6 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 ?;
 }
}
Run Code Online (Sandbox Code Playgroud)

感谢那些愿意帮助的人,祝你有个美好的一天!

azu*_*rog 22

你正在思考这个问题. Strings有自己的自然顺序,这是字母的,所以你可以使用String.compareTo这样的:

@Override
public int compareTo(MyObject otherObject) {
    return this.name.compareTo(otherObject.name);
}
Run Code Online (Sandbox Code Playgroud)