2015-10-16 100 views
-2
boolean run = true; 
    while(true) 
    { 
     System.out.println("Enter A to add, S to search, E to exit"); 
     String temp = input.next(); 
    switch(temp) 
    { 
     case "A": 
     case "a": 
      System.out.println("Please enter the building name: "); 
      newClassroom.setBuildingName(input.next()); 
      System.out.println("Please enter the room number: "); 
      newClassroom.setRoomNumber(input.next()); 
      System.out.println("Please enter the capacity: "); 
      newClassroom.setCapacity(input.nextInt()); 
      System.out.println("Please enter the academic department: "); 
      newClassroom.setAcadDept(input.next()); 
      System.out.println("Please enter whether or not the room has a projector: "); 
      newClassroom.setProjector(input.nextBoolean()); 
      List.add(newClassroom); 
      break; 
     case "S": 
     case "s": 
      System.out.println("Enter the building name and room number you wish to locate"); 
      //String buildingSearch = input.next(); 
      //int roomSearch = input.nextInt(); 
      System.out.println(List); 
      //System.out.println(buildingSearch + roomSearch); 
      Classroom temporary = new Classroom(); 
      temporary.setBuildingName(input.next()); 
      temporary.setRoomNumber(input.next()); 

      break; 
     case "E": 
     case "e": 
      System.exit(0); 
    } 
    } 
} 

我想檢查一下,看看ArrayList中是否包含一個對象。我試過使用包含,但有人說我應該嘗試使用.equals()來代替。檢查輸入的對象是否包含在一個數組列表中

+0

包括()應該工作的罰款。你有關於contains()的任何問題嗎? – yogidilip

+2

有人錯了,Contains將迭代列表並使用.equals()方法檢查每個值。您無需爲Strings提供自己的實現。 – Reinard

回答

0

兩者都是必需的。您必須覆蓋ClassRoom類中的equals()方法,該方法與其他ClassRoom對象進行比較,例如房間號(取決於您如何實施它)。 現在,當調用方法時,它將通過調用equals()方法並比較房間號來檢查每個ClassRoom對象。如果它已經存在,它將返回true。

class ClassRoom { 
    int roomNo; 

    public ClassRoom(int r) { 
     // TODO Auto-generated constructor stub 
     this.roomNo = r; 
    } 
    @Override 
    public boolean equals(Object obj) { 
     // TODO Auto-generated method stub 
     ClassRoom cr = (ClassRoom)obj; 
     return this.roomNo == cr.roomNo; 
    } 
} 

class TestContains { 
    public static void main(String[] args) { 
     ClassRoom c1 = new ClassRoom(5); 
     ClassRoom c2 = new ClassRoom(6); 
     ClassRoom c3 = new ClassRoom(7); 
     List<ClassRoom> list = new ArrayList<ClassRoom>(); 
     list.add(c1); 
     list.add(c2); 
     list.add(c3); 

     ClassRoom c8 = new ClassRoom(8); 
     ClassRoom c7 = new ClassRoom(7); 
     System.out.println(list.contains(c8)); 
     System.out.println(list.contains(c7)); 



    } 
} 

輸出:

真正

相關問題