【问题标题】:java ArrayList search methods [duplicate]java ArrayList搜索方法[重复]
【发布时间】:2015-12-31 21:17:47
【问题描述】:

我有一个ArrayList,其中包含Trains 的列表:

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;
    }
}

我想通过villeDepartvilleArrivee 搜索ArrayList。我该怎么做?

【问题讨论】:

标签: java arraylist


【解决方案1】:

我能想到,您必须使用循环并遍历整个列表。

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
  }
}

编辑:

正如@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;
  }
}

在 SO 中阅读This Question

【讨论】:

  • 使用像for (Train t : trainList) { ... t.getVilleDepart() ... }这样的foreach循环更优雅...
  • 谢谢。我会更新这个。
  • 认为兄弟,但我要编写一个返回火车列表的方法:像这样: public List getTrains(String villeDepart, String villeArrivee){} 如何使用 arrayList
  • 正如我在代码//You got your train 中提到的 - 你可以做任何你想做的事。在方法的开头(for each 循环之前)创建一个 ArrayList,然后将您的火车添加到新创建的 ~ArrayList 中。稍后归还。
猜你喜欢
  • 2016-01-07
  • 2016-02-21
  • 2020-07-24
  • 2013-11-08
  • 2015-01-29
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 2015-04-23
相关资源
最近更新 更多