我有 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/