在ArrayList中搜索值,然后复制值&新TreeSet

时间:2017-05-02 18:13:56

标签: java arraylist treeset

所以我有一个战斗机的ArrayList,在这个arraylist中它保存了具有如下变量的战斗机对象:

public Fighter()
{
  super();
  this.name = "";
  this.ageGroup = "standard";
  this.time = 0;
  this.number = this.nextNumber;
  this.nextNumber++;

}

我想要做的是搜索这个arraylsit给任何拥有ageGroup标准的人,然后将它们添加到TreeSet中。基本上为高级年龄组或初级年龄组提供一组结果。我使用TreeSet的原因是列表必须始终对键进行排序。

这些是我想填充的列表:

  juniorResults = new TreeSet<>(); 
  standardResults = new TreeSet<>(); 
  seniorResults = new TreeSet<>(); 

所以我已经走到了这一步:

public void categorise(){
  Iterator iter = fighters.iterator();
  while (iter.hasNext()){
     if(runners.contains(Runner.getAgeGroup("senior"))){
        Runner.getAgeGroup("senior");
     }
  }

如果我很诚实,我很遗憾这一点,所以任何帮助/教学点都将不胜感激!

1 个答案:

答案 0 :(得分:1)

您应该能够执行以下操作:

public void categorise() {
    for (Fighter fighter : fighters) {
        switch (fighter.getAgeGroup()) {
            case "senior":
                seniorResults.add(fighter);
                break;
            case "standard":
                standardResults.add(fighter);
                break;
            case "junior":
                juniorResults.add(fighter);
                break;
        }
    }
}

为了使其正常运行,您的Fighter类应该有一个方法(最好是摘要),将其年龄组作为StringFighter#getAgeGroup返回。