java - 在 ArrayList 中搜索值,然后将值和键复制到新的 TreeSet

标签 java arraylist treeset

所以我有一个战士的数组列表,在这个数组列表中它包含具有以下变量的战斗机对象:

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

}

我想做的是通过这个数组搜索任何具有标准年龄组的人,然后将它们添加到 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");
     }
  }

老实说,我对这个很迷茫,所以任何帮助/教学点将不胜感激!

最佳答案

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

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 类应该有一个方法(最好是抽象的),以 String 的形式返回其年龄组,Fighter#getAgeGroup.

关于java - 在 ArrayList 中搜索值,然后将值和键复制到新的 TreeSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43744588/

相关文章:

java - SMTP 发送邮件不适用于 office365

java - PKIX 路径验证失败 : java. security.cert.CertPathValidatorException: signature check failed exception while connecting memsql ssl db

java - 如何从最小窗口大小更改 JFrame 大小?

java - 如何在树集中搜索以查找大于或小于或不区分大小写的值?

java - 我可以取消分配(清除)实例的所有字段吗?

Java静态数组列表初始化问题

java - 破坏二进制文件

java - 将 ArrayList 转换为二维数组

Java:为什么我的 HashSet 和 TreeSet 包含重复项?

java - 我可以在 TreeSet 的构造函数中同时拥有 ArrayList 和 Comparator 吗?