java – 通过扩展类迭代Arraylist

前端之家收集整理的这篇文章主要介绍了java – 通过扩展类迭代Arraylist前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我一直想知道Java中的一个函数,我希望它存在.我想迭代一个Arraylist(比如A类),它包含类B和C的对象,它们都扩展了A.这个想法,我只想迭代(例如)ArrayList中B类的对象.

这怎么可能,比如下面代码中的简短示例,而没有长代码

主要课程:

     import java.util.*;

public class Test {

    public static void main(String[] args) {
        new Test ();
    }

    Test() {
        ArrayList

A:

public class A {

}

B:

public class B extends A {
    String hi = "hi";
}

C:

public class C extends A {

}

编辑:因为有这么多人回答这个问题:我知道使用instanceof.我想要一种更快的方法来遍历数组中的所有对象,其中类是B.

最佳答案
您可以为它创建一个可重用的Filter类,类似于FileFilter. (参见korifey关于使用番石榴的答案.)除此之外,不,没有任何现有的功能.此外,任何现有功能都必须完全按照您正在执行的操作,因为List类型无法知道列表中不同类对象的位置. (它必须迭代它们才能找到它们.)

如果您需要一个高性能解决方案,您可以考虑为单独的实例存储单独的列表 – 替换当前列表或作为当前列表的补充.您甚至可以将它包装在一个复合类中,该复合类将通过通用API提供两种功能(所有实例和按类实例).

猜你在找的Java相关文章