java - 更改一个数组列表项相对于另一个数组列表项的顺序

标签 java arrays sorting arraylist

我有 2 个数组列表

 ArrayList<String> passengerNames= new ArrayList<String>();//stores passenger names
ArrayList<String> seatNumber= new ArrayList<String>();//stores the seat passenger booked 1  seat=1passenger
    passengerNames.add("Ram");
    passengerNames.add("Shyam");
    passengerNames.add("CPS");
    passengerNames.add("John");
    passengerNames.add("Steve");

    seatNumber.add(1);
    seatNumber.add(84);
    seatNumber.add(19);
    seatNumber.add(99);
    seatNumber.add(78);

因此,passengerNames 数组将是 [拉姆、夏姆、CPS、约翰、史蒂夫] 和 SeatNumber 数组将是 [1、84、19、99、78] 我想按升序对 SeatNumber 数组进行排序,但我想用它来更改 PassengerNames 列表,就像 SeatNumber 按升序排列时一样 [1,19,78,84,99] PassengerNames 数组应该像这样排序 [拉姆、CPS、史蒂夫、夏姆、乔恩]

最佳答案

我建议将您的数据封装在一个新的 Passenger 对象中,并创建一个 Passenger 类型的 ArrayList - 这应该保持整洁和灵活。

public class Passenger {
    private String name;
    private int seatNumber;

    public Passenger(String name, int seatNumber) {
        this.name = name;
        this.seatNumber = seatNumber;
    }
}

...以及创建 Passenger ArrayList

List<Passenger> passengers = new ArrayList<Passenger>(); // build Passenger ArrayList
passengers.add(new Passenger("Ram", 1)); // create new Passenger
passengers.add(new Passenger("Shyam", 84)); // etc...

关于按升序对列表进行排序,一种简洁的方法是在 Passenger 类中实现 Comparable,并在 compareTo(乘客 p) 方法。一旦根据您的喜好定义了该排序,就可以通过Collections.sort(passengers);

调用排序

关于java - 更改一个数组列表项相对于另一个数组列表项的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61056707/

相关文章:

python - OpenOffice calc 中的排序算法

c++ - 在 C++ 中比较 double

java - LibGDX设置加速错误

java - 如何在 Eclipse 中设置时区(错误的 cvs 日志时间戳)?

java - 能否利用Dijkstra算法找到最快返回路由节点的方法?

c++ - 如何在构造函数中初始化数组?

java - 一维排序数组,但 array[i+1] 始终打印索引零处的元素

Java 组件调整大小 - 检测用户是否调整了窗口大小或以编程方式调整了窗口大小

arrays - Swift - NSDictionary 多维

arrays - 如何确定 C 中数组的大小?