【问题标题】:how do I sort an array of objects alphabeticaclly by a specific field如何按特定字段按字母顺序对对象数组进行排序
【发布时间】:2017-02-19 16:22:23
【问题描述】:

我有一个包含多个字段的对象数组。我有一个带有构造函数、setter 和 getter 的类。其中一个字段是名称。我想按字母顺序对数组中的所有名称进行排序并列出它们。任何人都可以提供帮助吗?这是在java中。

谢谢

【问题讨论】:

  • 也许吧。用什么语言?我们在谈论什么样的对象?
  • 首先:你用什么语言编码?第二:尝试发布一些代码。这样我们可以帮助您。 How to ask questions
  • 您希望用多少种不同的语言以及多少种可能的数组/对象来回答...?
  • 如果缺少一种语言,通常是 Java……
  • java 中肯定有很多关于排序数组的问题已经得到解答。 stackoverflow.com/questions/12449766/… 怎么样?

标签: java arrays sorting alphabetical


【解决方案1】:

您可以使用 Comparable 界面执行此操作。假设我们有一辆 Class Car,它可以是某个品牌(本例中的名称)

public class Car implements Comparable<Car> {


    private String name;
    private String color;   

    /**
     * Names
     */
    public enum Name {

        FIAT("fiat"), RENAULT("renault"), HONDA("honda");

        private final String name;      

        private Name(final String name) {
            this.name = name;
        }

        public String toString() {
            return this.name;
        }
    }

    /**
     * Colors
     */
    public enum Colors {

        BLUE("blue"), RED("red"), YELLOW("yellow");

        private final String color;     

        private Colors(final String color) {
            this.color = color;
        }

        public String toString() {
            return this.color;
        }
    }

    /**
     * Construct car with name and color
     * @param name
     * @param color
     */
    public Car(Name name, Colors color) {
        this.name = name.toString();
        this.color = color.toString();
    }

    /**
     * return name
     * @return
     */
    public String getName() {
        return this.name;
    }

    /**
     * compare to other car
     */
    @Override
    public int compareTo(Car car2) {
        return this.name.compareTo(car2.getName());
    }
}

还有主要的:

import java.util.Arrays;

public class Main {

    //private static List<Car> cars = new ArrayList<Car>();
    private static Car[] cars = new Car[3];

    /**
     * @param args
     */
    public static void main(String[] args) {

        System.out.println("Create cars in array");
        cars[0] = new Car(Car.Name.RENAULT, Car.Colors.YELLOW);
        cars[1] = new Car(Car.Name.HONDA, Car.Colors.BLUE);
        cars[2] = new Car(Car.Name.FIAT, Car.Colors.RED);

//      System.out.println("Create cars in arraylist");     
//      cars.add(new Car(Car.Name.RENAULT, Car.Colors.YELLOW));
//      cars.add(new Car(Car.Name.HONDA, Car.Colors.BLUE));
//      cars.add(new Car(Car.Name.FIAT, Car.Colors.RED));

        System.out.println("Print cars");
        for (Car car : cars) {
            System.out.println("Car name: "+car.getName());
        }

        // sort cars, see Car class
        Arrays.sort(cars);

        System.out.println("Print cars after sort");
        for (Car car : cars) {
            System.out.println("Car name: "+car.getName());
        }
    }
}

查看控制台的输出。

【讨论】:

  • 我不明白,我的对象存储在数组中:movies[] movieArr = new movies[0];
猜你喜欢
  • 2019-06-15
  • 1970-01-01
  • 2014-12-30
  • 1970-01-01
  • 2018-12-03
  • 1970-01-01
  • 2015-05-17
  • 2021-01-03
  • 2013-11-02
相关资源
最近更新 更多