获取乘客名单并将其放入座位。数组列表

时间:2013-12-06 22:05:59

标签: java arraylist

所以我已经在这里待了4个小时,我完全难过了。

创建一个简单的Passenger类,记录乘客的姓名和座位偏好。编写一个程序,重复请求乘客的名字(哨兵圈),然后是用户的座位偏好。首选项将包括行号和座位字母(假设21行和A,B,C和D座位)。在Passenger对象的ArrayList中搜索匹配的名称。如果它已在列表中,请设置其新的座位偏好;否则,创建一个新的Passenger并将其添加到列表的末尾。这是UML http://imgur.com/SkqVUxU

这是我到目前为止的代码。我无法在循环中完成我的操作。而且我不确定我的下一步会是什么。

public class Passenger{

private String name;
private int row;
private int seat;


public  Passenger(){

}


public Passenger(String passengerName, int requestedRow, int requestedSeat){

    name = passengerName;
    row = requestedRow;
    seat = requestedSeat;


    Scanner sc = new Scanner(System.in);

System.out.println("enter the passenger name or 'stop' to quite: ");
name = sc.next();

    do{
     System.out.println("what row would you like to sit on? ");
     row = sc.nextInt();
     System.out.println("what sear would you like to sit on? ");
     seat = sc.nextInt();
     }while(name == "stop");
}

    public String getName(){
        return name;
    }
    public int getRow(){
        return row;
    }
    public int getSeatNumber(){
        return seat;
    }
    public char getSeatCode(){
        return seatPreference();
    }


public  char seatPreference(){
    char newSeat = 0;
    if(seat == 1){
        newSeat = 'A';
    }
    else if(seat == 2){
        newSeat = 'B';
    }
    else if(seat == 3){
        newSeat = 'C';
    }
    else if(seat == 4){
        newSeat = 'D';
    }
    return newSeat;
    }

public void setPreference(int newRow, char newSeat){

}

}

3 个答案:

答案 0 :(得分:1)

要比较String,请使用equals方法。

do{
     System.out.println("what row would you like to sit on? ");
     row = sc.nextInt();
     System.out.println("what sear would you like to sit on? ");
     seat = sc.nextInt();
while(name.equals("stop"));

答案 1 :(得分:1)

在OOP中你不能使用==来比较字符串,因为你只会检查字符串的内存引用。我会使用String.Compare(string1,string2)。如果等于,则返回0,如果不等,则返回-1或返回1.

我也会像这样使用循环

while(String.Comapre(name.ToUpper(), "Q") != 0)
{

}

另外,除非有要求,否则我会使用List<>字典<>或DictionaryList<>而不是ArrayList。

答案 2 :(得分:0)

Java语言规范说明了一切

  

虽然==可用于比较String类型的引用,例如   等式测试确定两个操作数是否引用   相同的String对象。如果操作数是不同的,则结果为false   字符串对象,即使它们包含相同的字符序列。   可以通过对两个字符串s和t的内容进行相等性测试   方法调用s.equals(t)