列出arraylist的一部分

时间:2016-07-25 12:46:33

标签: java oop arraylist

我有抽象类A.B类继承自A,C类继承自B.

  • A类有两个实例变量字符串firstName 字符串lastName
  • B类没有实例变量。
  • C类有一个实例变量int age。

我创建了列出列表中所有对象的函数。我的ArrayList是从Class B和C。

创建的

我想创建一个函数,只是列表对象有年龄(来自C类的对象)。怎么样?

2 个答案:

答案 0 :(得分:3)

最简单的方法是简单地检查列表中每个对象的类型:

for (Object item : yourListWithBAndCs) {
      if (item instanceof C) {
           C itemAsC = (C) item;
           // do something
      } else { ... }
}

从Java8开始,您可以使用流和过滤器(Kudos to @Andrew Tobilko)来获取此建议:

list.stream().filter(i -> i instanceof C).collect(Collectors.toList());

以上将为您创建一个新列表;仅包含那些是C实例的对象。

答案 1 :(得分:-2)

class C extends B
{
     int age;
     ArrayList listAge;
     C()
     {
        listAge = new ArrayList();
     }
     public void addAge()
     {
    listAge.add(age);          
     }
}