当前位置: 首页 > 知识库问答 >
问题:

如何遍历不同类对象的ArrayList以搜索特定类?

严永丰
2023-03-14

如何遍历不同类对象的ArrayList以搜索特定类?

productionDate是在基类中实现的接口。

这是代码,但它不打印任何东西:)

ArrayList<ProductionDate> storage;

public void search(Class c, int itemCount){
   if(storage.getClass() == c){
       for(ProductionDate d : storage){
           if(d instanceof ProductionDate &&
                   ((ProductionDate)d).getItemCount() >= itemCount){
                     System.out.println(d);
           }
       }
   }
}

共有2个答案

白丁雨
2023-03-14

我不知道你如何调用该方法,但这是有效的:

import java.util.ArrayList;

public class Main {

public static void main(String[] args) {
    ArrayList<Object> arrayList = new ArrayList<>();
    Class c = arrayList.getClass();
    search(c, 12);
}

public static void search(Class c, int itemCount) {
    ArrayList<ProductionDate> storage = new ArrayList<>();
    storage.add(new ProductionDate(13));
    storage.add(new ProductionDate(15));
    storage.add(new ProductionDate(11));

    if (storage.getClass() == c) {
        for (ProductionDate d : storage) {
            if (d instanceof ProductionDate &&
                    ((ProductionDate) d).getItemCount() >= itemCount) {
                System.out.println(d);
            }
        }
    }
}


private static class ProductionDate {
    int itemCount;

    public ProductionDate(int itemCount) {
        this.itemCount = itemCount;
    }

    public int getItemCount() {
        return itemCount;
    }

}

}

输出:

Main$ProductionDate@5acf9800
Main$ProductionDate@4617c264
燕鸿文
2023-03-14

首先,删除第一条if语句。

其次,您应该使用实现ProductionDate接口的类来检查对象是否属于该特定类。我认为该类在这里是Class c

所以:

ArrayList<ProductionDate> storage;

public void search(Class c, int itemCount){
    for(ProductionDate d : storage){
           if(d instanceof c &&
                   ((c)d).getItemCount() >= itemCount){
                     System.out.println(d);
           }
    }
}
 类似资料:
  • 问题内容: 使用示例: 假设我有一个课堂电话。我还有另一个上课电话。 类的ArrayList为。 要遍历.. 的Arraylist而不是这样做: 我们可以像这样简单地遍历ArrayList : 现在,我要迭代并打印出所有第3个对象: 现在我的问题是: 与使用常规的for循环不同,我如何使用ArrayList迭代打印出枪支对象列表? 问题答案: 您要遵循与以前相同的模式: 在这种情况下,它将是:

  • 问题内容: 我有一堂课。它具有以下特征; 它具有2个属性,和。1个人可以拥有许多电话,因此您可能会在下面看到具有多个ID的人。 还有另一门课叫。它将有一个称为的方法。 personList,具有3-4个Person对象。我需要搜索PersonArrayList并找到与Person对象匹配的对象。我怎样才能做到这一点? 注意:我尝试过。但这是行不通的。 问题答案: 我尝试了personList.co

  • 我试图根据用户输入找到一个特定的对象。用户需要输入姓名和性别,然后程序应该搜索ArrayList,查看是否有匹配的姓名和性别。ArrayList中的对象有3个实例变量,但程序只搜索2个。如何在ArrayList中只搜索选定的几个特征? 在我的项目中,我有: 其中,nameList是ArrayList的名称,getName()是返回存储在对象中的名称的方法的名称,getGender()是返回存储在对

  • 我有一个对象的arraylistTile有我想创建一个搜索函数,在这里我迭代遍历瓷砖的每个属性和arraylist中每个颜色内的每个属性(就像每个循环的嵌套),有没有一种简单的方法可以做到这一点?

  • 对于我当前的项目,我必须搜索ArrayList of ZipCode对象,以便找到距离用户输入的int zip最远的ZipCode。 下面是编写我遇到问题的方法的说明:public ZipCode findfurtwest(int-pZip)-查找距离提供的邮政编码最远的ZipCode。如果未找到邮政编码,则返回null。例如,距离邮政编码75234最远的是ADAK,AK 99546。 在我的代码

  • 假设每种颜色总是有一辆车。所以我总是在找一辆车,不多也不少。 如何确保始终有一个对象被找到并返回?