2016-06-24 42 views
0

我编写迭代ArrayList的代码,如果找到名称与getName相同的代码,它将打印该文件,如果找不到将打印“消息”。我的问题与此代码是:Java - 无法找到大小写的数组列表的迭代

如果一个人有另一个人相同的nome该程序将停止第一场比赛,因为休息;我该如何解决这个问题?

import java.util.*; 

public class AggPersone { 
    public static void main(String[] args) { 


    ArrayList<Item> voce = new ArrayList<Item>(); 

    voce.add(new Item("Robert", "Via qualcosa", "123")); 
    voce.add(new Item("Roberto","Via qualcosina", "123")); 
    voce.add(new Item("Robert", "Via qual ", "2222")); 

    Scanner input = new Scanner(System.in); 
    System.out.println("chi cerchi?"); 
    String chiave = input.nextLine(); 

    int i = 0; 
    while(i < voce.size()){ 
     if(voce.get(i).getNome().equals(chiave)){ 
      System.out.println(voce.get(i).toString()); 
      break; 
     } 

     i++; 

     if(i == voce.size()){ 
      System.out.println("Nessun match"); 
     } 
    } 

    input.close(); 
} 

} 
+1

删除break语句将打印所有这些... – StackFlowed

+1

@StackFlowed:但你不会检测是否没有被发现。 –

回答

0

使用一个布尔变量来标志,如果该名称已经发现:在你循环

boolean found = false; 
for (Item item : voce) { 
    if(item.getNome().equals(chiave)){ 
     System.out.println(item.toString()); 
     found = true; 
    } 
} 

if (!found) { 
    System.out.println("Nessun match"); 
} 
+0

谢谢!是工作。 – Uruma