Yahoo Interview Question
Software Engineer / Developers{
import java.util.List;
public abstract class Vehicle
{
List<ParkingLot> pLst = null;
ParkingLot plot = null;
public void setpLst(List<ParkingLot> pLst)
{
this.pLst = pLst;
}
public abstract void parkVehicle();
public ParkingLot getParkingLot(List<ParkingLot> plist, ParkingLotType plt)
{
for (ParkingLot pL : plist)
{
if (pL.getpLType() == plt)
{
if (pL.isOccupied() == false)
{
pL.setOccupied(true);
plist.remove(pL);
return pL;
}
}
}
return null;
}
public void unParkVehicle(ParkingLot pL)
{
pL.setOccupied(true);
pLst.add(pL);
}
}
class MotorBike extends Vehicle
{
@Override
public void parkVehicle()
{
ParkingLotType plTArray = ParkingLotType.MOTORBIKE;
plot = super.getParkingLot(pLst, plTArray);
}
}
class Car extends Vehicle
{
@Override
public void parkVehicle()
{
// TODO Auto-generated method stub
// plTArray = new ParkingLotType[1];
ParkingLotType plTArray = ParkingLotType.CAR;
plot = super.getParkingLot(pLst, plTArray);
}
}
class HandiCar extends Vehicle
{
@Override
public void parkVehicle()
{
ParkingLotType plTArray = ParkingLotType.HANDICAPPED_LOT;
plot = super.getParkingLot(pLst, plTArray);
if (plot == null)
plot = super.getParkingLot(pLst, ParkingLotType.CAR);
}
}
class ParkingLot
{
private int id;
private boolean occupied = false;
private ParkingLotType pLType;
public int getId()
{
return id;
}
public ParkingLot(int id, boolean occupied, ParkingLotType pLType)
{
super();
this.id = id;
this.occupied = occupied;
this.pLType = pLType;
}
public ParkingLotType getpLType()
{
return pLType;
}
public boolean isOccupied()
{
return occupied;
}
public void setOccupied(boolean occupied)
{
this.occupied = occupied;
}
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + id;
return result;
}
@Override
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ParkingLot other = (ParkingLot) obj;
if (id != other.id)
return false;
return true;
}
}
enum ParkingLotType
{
MOTORBIKE, CAR, HANDICAPPED_LOT;
}
}
public interface vehicles{
- Anonymous September 13, 2010public boolean park(ParkingSlot slot);
}
public class Motorbike implement vehicles{
public boolean park(ParkingSlot slot){
if(slot is motobikeslot) return true;
return false;
}
}
public class Cars implement vehicles{
public boolean park(ParkingSlot slot){
if(slot is Carslot) return true;
return false;
}
}
public class handicappedCars implement vehicles{
public boolean park(ParkingSlot slot){
if(slot is Carslot or handicappedslot) return true;
return false;
}
}