java - 定义(或重写)Arrays.sort 方法

标签 java sorting overriding

我有一个类(class)如下。

public class MyClass{
  int x;
  String str;
  public MyClass(int x)
    {
     this.x=x;
    }
public static void main(String args[])
{
   MyClass[] myclass=new MyClass[10];
   Random rnd=new Random();
   for(int i=0;i<10;i++)
    {
      myclass[i]=new MyClass(rnd.nextInt());
     }
}
}

现在,在初始化每个数组对象后,我现在希望根据它们的 x 值对其进行排序。是否可以重写 Arrays.sort 方法来执行此操作,或者我需要定义自己的方法?

最佳答案

就您而言,由于您的 MyClass 类显然具有自然顺序,最简单的方法就是让它实现 Comparable界面。

之后,您可以使用the standard sort methods of the Arrays class .

public class MyClass implements Comparable<MyClass> {
     int x;
      ...
      @Override
        public int compareTo(MyClass o) {
            return o.x-x;
        }
    public static void main(String args[]) {
       MyClass[] myarray=new MyClass[10];
       ...
       Arrays.sort(myarray);
    }
}

关于java - 定义(或重写)Arrays.sort 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12668451/

相关文章:

java - 什么时候应该使用多线程?如果不同的线程执行相互独立的任务,多线程是否有益?

c - 使用结构数组在 C 中进行选择排序,错误 : "lvalue required..."

java - Comparable/Comparator 使用的排序的内部工作

c - 有没有办法编写更好的代码来对 C 中的结构进行排序?

javascript - 捕获 anchor 标记

polymorphism - "Polymorphism is not the same as method overloading or method overriding."

java - 重写serialEvent两次

java - Swing Java 组件可见性控制

java - 在 JGIT 中创建分支时出现 RefNotFoundException

Java EE : how to access local EJB from web module?