2015-12-31 3 views
0

У меня есть ArrayList, который содержит список Train с:методы поиска Java ArrayList

package train; 

public class Train { 

    private String nom; 
    private String villeDepart, villeArrivee; 

    public Train() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 
    public Train(String nom, String villeDepart, String villeArrivee) { 
     super(); 
     this.nom = nom; 
     this.villeDepart = villeDepart; 
     this.villeArrivee = villeArrivee; 
    } 
    public String getNom() { 
     return nom; 
    } 
    public void setNom(String nom) { 
     this.nom = nom; 
    } 
    public String getVilleDepart() { 
     return villeDepart; 
    } 
    public void setVilleDepart(String villeDepart) { 
     this.villeDepart = villeDepart; 
    } 
    public String getVilleArrivee() { 
     return villeArrivee; 
    } 
    public void setVilleArrivee(String villeArrivee) { 
     this.villeArrivee = villeArrivee; 
    } 
} 

Я хочу, чтобы искать ArrayList по villeDepart и villeArrivee. Как я могу это сделать?

+1

См. Http://stackoverflow.com/questions/985229/search-in-java-arraylist для решений (в основном вам нужно пройти весь список с «за», чтобы искать совпадение). –

+0

Переопределите метод equals в вашем классе. – Atri

ответ

2

Как я могу думать, вам нужно использовать цикл и просмотреть весь список.

for each (Train train in list) { 
    String villeDepart = train.getVilleDepart(); 
    String villeArrivee = train.getVilleArrivee(); 

    if (villeDepart.equals("String you want to match") && villeArrivee.equals("Next String to match") { 
    //You got your train 
    } 
} 

EDIT:

Как уже упоминалось @Atri, вы можете переопределить метод Equals. Это намного проще. В вашем Train классе

@Override 
public boolean equals(Object obj) { 
    Train train = (Train) obj; 
    if (this.villeArrivee.equals(train.getVilleArrivee()) && this.villeDepart.equals(train.getVilleDepart())) { 
    return true; 
    } else { 
    return false; 
    } 
} 

Читать This Question в SO.

+1

Использование цикла foreach, например 'for (Train t: trainList) {... t.getVilleDepart() ...}' более элегантно ... –

+0

Спасибо. Я обновлю это. –

+0

думает братьев, но я должен написать метод, который возвращает список поездов: вот так: public List getTrains (String villeDepart, String villeArrivee) {} как я могу это сделать с помощью массиваList –

Смежные вопросы