加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 通过扩展类迭代Arraylist

发布时间:2020-12-14 19:17:07 所属栏目:Java 来源:网络整理
导读:我一直想知道Java中的一个函数,我希望它存在.我想迭代一个Arraylist(比如A类),它包含类B和C的对象,它们都扩展了A.这个想法,我只想迭代(例如)ArrayList中B类的对象. 这怎么可能,比如下面代码中的简短示例,而没有长代码? 主要课程: import java.util.*;publi

我一直想知道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提供两种功能(所有实例和按类实例).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读