编辑。谢谢你。
我有一系列“普通”车辆和“大型”车辆。我有一项任务要求我将它们分开,以便为一个更大的应用程序做出贡献。一个用于大型车辆的数组,一个用于包含每个元素的所有信息的普通车辆。ArrayLists 是不允许的,因为我的老师正在教我们基础知识。
数组的样本
27723 4/09/61 large 7337 28507 22-02-1983 large 7055 28558 1/05/70 normal 3518
//On button press
//recieve single item from array from main and test it
//array in main will be looped for all elements.
public String loadVehicle(Vehicle v) {
String res = Constants.OK;
boolean normBool = false;
boolean largeBool = false;
//if both arrays are full , stop the method call in the main form
if (normBool && largeBool){return Constants.ERROR;}
//if vehicle size is normal, fill the normal veh array
if(v.getSize().equals(Constants.NORMAL_SIZE))
{
for(int i = 0; i<normalVehicles.length; i++)
{
//if norm veh array element is null, add the appropriate value to it
if(normalVehicles[i] == null){normalVehicles[i] = v;}
else{normBool = true;}
}
}
//if veh size is large put it in the large veh array
else if(v.getSize().equals(Constants.LARGE_SIZE))
{
for(int iL = 0; iL<largeVehicles.length; iL++)
{
if(largeVehicles[iL] == null){largeVehicles[iL] = v;}
else{largeBool = true;}
}
}
return res;
}//end method
似乎您也不能使用内置LinkedList类,然后执行以下操作:
在您的 Vehicle 类中添加以下代码:
class Vehicle(){ //YOUR OTHER PIECES OF CODES ... private static Vehicle firstLargeVehicle; private Vehicle nextLargeVehicle; private int index; public void setIndex(int index){ this.index = index; if(index == 0) Vehicle.firstLargeVehicle = this; } public int getIndex(){ return index; } public void setNextLargeVehicle(Vehicle nextLargeVehicle){ this.nextLargeVehicle = nextLargeVehicle; } public Vehicle getNextLargeVehicle(){ return nextLargeVehicle; } public addLargeVehicle(Vehicle newVehicle){ this.nextLargeVehicle = newVehicle; newVehicle.setIndex(index + 1); } public getListSize(){ Vehicle lastOne = this; while (lastOne.getNextLargeVehicle() != null){ lastOne = lastOne.getNextLargeVehicle(); } return lastOne.getIndex() + 1; } public static Vehicle[] largeVehiclesToArray(){ Vehicle[] result = new Vehicle[firstLargeVehicle.getListSize()](); Vehicle pointer = firstLargeVehicle; for (int counter = 0; pointer != null; counter ++){ result[counter] = pointer; pointer = pointer.getNextLargeVehicle(); } return result; } }
在您的主循环中,执行类似以下代码的操作:
Vehicle vehicle = null; for(Vehicle newVehicle : allVehicles) { if (newVehicle.isLarge()){ if (vehicle == null) { vehicle = newVehicle; vehicle.setIndex(0); }else{ vehicle.addLargeVehicle(newVehicle)); } } } Vehicle[] largeVehicles = Vehicle.largeVehiclesToArray();
同样的故事也适用于普通车辆。任何问题 ?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句