1
我正在嘗試將乘客對象添加到已排序的集合中。這個排序集合在巡航對象中。所有的巡航對象都在一個哈希映射中。我有點新收藏,所以我遇到了麻煩。這是我嘗試做我正在做的事情。如何將對象添加到對象的散列圖內的有序集合
HashMap<String, Cruise> cruiseMap = new HashMap<String, Cruise>();
SortedSet<Passenger> passengerSet = new TreeSet<Passenger>();
Queue<Passenger> waitingList = new LinkedList<Passenger>();
Cruise cruise = new Cruise("1", passengerSet, waitingList, false);
cruiseMap.put("1", cruise);
Passenger passenger = new Passenger("Smith", "J");
cruiseMap.get("1").getPassengerSet().add(passenger);
乘客參數是字符串,它們是姓氏,然後是他們的第一個首字母。郵輪的參數是一個字符串日期,sortedSet乘客,有一個隊列等待列表和一個布爾變量來確定船是否已經離開。當我運行這段代碼時,我總是收到大量的錯誤。先謝謝您的幫助。
這是我收到的錯誤。
Exception in thread "main" java.lang.ClassCastException: edu.ilstu.Passenger cannot be cast to java.lang.Comparable
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)
at edu.ilstu.Driver.main(Driver.java:48)
客運班
public class Passenger {
private String lastName = "";
private String firstName = "";
public Passenger()
{
lastName = "no last name yet";
firstName = "no first name yet";
}
public Passenger(String lastName, String firstName)
{
this.lastName = lastName;
this.firstName = firstName;
}
/**
* @return the lastName
*/
public String getLastName()
{
return lastName;
}
/**
* @param lastName the lastName to set
*/
public void setLastName(String lastName)
{
this.lastName = lastName;
}
/**
* @return the firstName
*/
public String getFirstName()
{
return firstName;
}
/**
* @param firstName the firstName to set
*/
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
return lastName + " " + firstName;
}
}
克魯斯類
public class Cruise
{
private String day = "";
private SortedSet<Passenger> passengerSet = new TreeSet<Passenger>();
private Queue<Passenger> waitingList = new LinkedList<Passenger>();
private boolean hasDeparted = false;
public Cruise()
{
day = "no day yet";
passengerSet = null;
waitingList = null;
hasDeparted = false;
}
public Cruise(String day, SortedSet<Passenger> passengerSet, Queue<Passenger> waitingList, boolean hasDeparted)
{
this.day = day;
this.passengerSet = passengerSet;
this.waitingList = waitingList;
this.hasDeparted = hasDeparted;
}
/**
* @return the day
*/
public String getDay()
{
return day;
}
/**
* @param day the day to set
*/
public void setDay(String day)
{
this.day = day;
}
/**
* @return the passengerSet
*/
public SortedSet<Passenger> getPassengerSet()
{
return passengerSet;
}
/**
* @param passengerSet the passengerSet to set
*/
public void setPassengerSet(SortedSet<Passenger> passengerSet)
{
this.passengerSet = passengerSet;
}
/**
* @return the waitingList
*/
public Queue<Passenger> getWaitingList()
{
return waitingList;
}
/**
* @param waitingList the waitingList to set
*/
public void setWaitingList(Queue<Passenger> waitingList)
{
this.waitingList = waitingList;
}
/**
* @return the hasDeparted
*/
public boolean isHasDeparted()
{
return hasDeparted;
}
/**
* @param hasDeparted the hasDeparted to set
*/
public void setHasDeparted(boolean hasDeparted)
{
this.hasDeparted = hasDeparted;
}
}
添加實際的錯誤你的問題,謝謝。 – RealSkeptic 2015-04-05 19:47:51
請另外添加克魯斯和乘客類。 – JFPicard 2015-04-05 19:51:06
該信息已添加。 – 2015-04-05 20:09:24