一个解决办法是使用泛型数组(Generic Array)。在Java中,数组是固定长度的,而且只能包含相同类型的元素。但是,可以使用泛型来创建一个数组,该数组可以包含不同类型的元素。以下是一个示例代码:
import java.util.ArrayList;
import java.util.List;
public class ArrayAggregation {
public static void main(String[] args) {
// 创建一个泛型数组
List
在上面的示例中,我们使用ArrayList
类来创建一个泛型数组array
。我们可以使用add()
方法向数组中添加不同类型的元素。然后,我们使用一个循环来遍历数组并打印每个元素。
另一种解决办法是使用数组的父类或接口来声明数组变量,然后使用不同的子类对象来填充数组。以下是一个示例代码:
public class ArrayAggregation {
public static void main(String[] args) {
// 创建一个Animal类型的数组
Animal[] animals = new Animal[3];
// 添加不同类型的Animal子类对象
animals[0] = new Cat();
animals[1] = new Dog();
animals[2] = new Bird();
// 调用Animal类的共同方法
for (Animal animal : animals) {
animal.makeSound();
}
}
}
// Animal类作为父类或接口
class Animal {
public void makeSound() {
System.out.println("Animal is making a sound");
}
}
// Animal的子类之一
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Meow");
}
}
// Animal的子类之一
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Woof");
}
}
// Animal的子类之一
class Bird extends Animal {
@Override
public void makeSound() {
System.out.println("Chirp");
}
}
在上面的示例中,我们声明了一个Animal
类型的数组animals
。然后,我们使用不同的Animal
子类对象(Cat
、Dog
和Bird
)来填充数组。最后,我们使用一个循环来调用makeSound()
方法,该方法是Animal
类的共同方法,但由于多态性的存在,实际上会调用每个子类的相应方法。
这两种解决办法都可以实现包含不同结构的数组聚合。选择哪一种方法取决于具体的需求和上下文。
上一篇:包含不同对象的2个列表的共同部分