2016-06-23 4 views
0

Ich habe eine Arraylist erstellt, nachdem ich mit dem Scanner einen Namen eingegeben habe, würde ich gerne suchen, ob der Name gleich getName ist und nach dem ganzen Array mit voce.get (i) .toString() drucken.Java - Wie drucke ich bestimmte Arrays aus einer Liste?

Wie suche robert, es ist alle arraylist suchen und wenn gefunden ein getName wer ist gleichzusetzen mit robert druck al array.

Sorry für mein schlechtes Englisch

public class Item { 
private String nome,indirizzo,cellulare; 

public Item(String nome, String indirizzo, String cellulare){ 
    this.nome = nome; 
    this.indirizzo = indirizzo; 
    this.cellulare = cellulare; 
} 

public String toString(){ 
    return this.getNome() + this.getIndirizzo() + this.getCellulare(); 
} 

public String getNome() { 
    if(!this.nome.isEmpty()){ 
     return this.nome; 
    } 
    else{ 
     return "Sconosciuto"; 
    } 
} 

public void setNome(String nome) { 
    this.nome = nome; 
} 

public String getIndirizzo() { 
    if(!this.indirizzo.isEmpty()){ 
     return this.indirizzo; 
    } 
    else { 
     return "Sconosciuto"; 
    } 
} 

public void setIndirizzo(String indirizzo) { 
    this.indirizzo = indirizzo; 
} 

public String getCellulare() { 
    if(!this.cellulare.isEmpty()){ 
     return this.cellulare; 
    } 
    else { 
     return "Sconosciuto"; 
    } 
} 

public void setCellulare(String cellulare) { 
    this.cellulare = cellulare; 
} 
    } 

MAIN:

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")); 

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


    for(int i = 0; i < voce.size(); i++){ 
     if(chiave.equals(getNome){ <---- doesn't work, how to ispect getNome? 
      System.out.println(voce.get(i).toString()); 
     } 
    } 

} 
    } 

Antwort

0

Sie wollen jeweils Item ‚s vergleichen nome Attribut der Eingabezeichenfolge - versuchen voce.get(i).getNome() an der Linie zu verwenden, die Sie erwähnt.

+0

Vielen Dank, und wenn der Name nicht existiert, wie ich "Person nicht gefunden?" Drucken könnte. Ich nehme an, dass ich die genaue Anzahl der Arraylisten nicht kenne. – Uruma

+0

@ Uruma- Setzen Sie eine else-Anweisung nach dem 'if', wo Sie versuchen, den Namen zu finden. – vv88

+0

Ja, aber wenn der Name in 3-4 Platz ist, wird es für 2 Mal gedruckt nicht gefunden, bis es gefunden wird. Es sollte am Ende der Iteration gedruckt werden. – Uruma

0

Sie benötigen die getNome() -Methode von der Item-Objekt zu nennen, wie folgt aus:

for(int i = 0; i < voce.size(); i++){ 
    String nome = voce.get(i).getNome(); 
    if(chiave.equals(nome){ 
    System.out.println(nome); 
    } 
} 
1

Wenn ich es richtig verstehe, ich glaube, Sie versuchen, die Eingabe vom Scanner zu sehen, ob in der zu finden ist Arraylist 'Voce'.

Sie müssen durch "Voce" iterieren, bis Sie "Chiave" sehen.

for(Item item: voce) { 
    if(item.getNome().equals(chiave) { 
     System.out.println("Found: " + item.getNome());   
    } 
} 
0

Sie versuchen, zu verwenden - von Elementklasse getNome() Verfahren ohne ein Objekt dieser Klasse. Also kompiliert es nicht einmal.

Ihre letzte Schleife ändern zu folgenden -

for(int i = 0; i < voce.size(); i++){ 
       if(chiave.equals(voce.get(i).getNome())){ //<---- doesn't work, how to ispect getNome? 
        System.out.println(voce.get(i).toString()); 
       } 
      } 

Hoffnung, das hilft.

Verwandte Themen