不确定如何正确标题但是这里。
我有一个类Plane
,它创建了一个类PlaneSeat
的数组。在我的案例中有12个对象
PlaneSeat
包含int seatId
,int customerId
,boolean assigned
属性。
我正在尝试为Plane
类编写一个方法,该方法将返回按PlaneSeat
排序的customerId
个对象数组。
这是我目前所做的。现在我将返回void,因为我还没有准备正确的数据来构建新的PlaneSeat
。现在的问题是,我的算法只是在相邻元素之间进行比较。不确定我可以使用什么样的内置函数来实现我想要的结果?
我查看了Sort ArrayList of custom Objects by property,虽然它是一个类似的方法,但它会修改我不想要的原始数据顺序。我只想获得一个独立的有序集并返回它而不修改原始顺序。
private void sortSeats()
{
int temp;
Integer[] seatIdArray = new Integer[12];
Integer[] custIdArray = new Integer[12];
System.out.println("Inside sortSeats(), length = " + seatIdArray.length);
int count = 0;
// prepare data
for (int i = 0; i<seat.length;i++)
{
if (seat[i].isOccupied())
{
seatIdArray[count] = seat[i].getSeatID();
custIdArray[count] = seat[i].getCustomerID();
count ++;
}
}
// sorting according to customerID
for (int i = 1; i <seatIdArray.length; i++)
{
if (seatIdArray[i] == null) break;
if (custIdArray[i-1] > custIdArray[i])
{
temp = custIdArray[i];
custIdArray[i] = custIdArray[i-1];
custIdArray[i-1] = temp;
temp = seatIdArray[i];
seatIdArray[i] = seatIdArray[i-1];
seatIdArray[i-1] = temp;
}
}
// displaying result
for (int i = 0; i <seatIdArray.length; i++)
{
if (seatIdArray[i] == null) break;
System.out.println("SeatID " + seatIdArray[i] + " assigned to CustomerID " + custIdArray[i]);
}
}