Java语言怎么将对象按照子类进行分组,构成不同的数组,这里的条件是类型,应该怎么判断的呢
使用对象调用getClass()返回的class类型来做区分判断
首先,你需要创建一个父类Animal,并让子类Dog和Cat继承Animal类。在Animal类中定义一个抽象方法,例如getAnimalType()
,用于获取子类的类型。
接下来,你可以创建一个Animal对象的列表,其中包含不同子类的实例。例如:
List<Animal> animals = new ArrayList<>();
animals.add(new Dog());
animals.add(new Cat());
animals.add(new Dog());
然后,你可以使用instanceof
关键字来确定对象的类型,并根据类型进行分组。例如:
Map<String, List<Animal>> animalGroup = new HashMap<>();
for (Animal animal : animals) {
if (animal instanceof Dog) {
if (!animalGroup.containsKey("Dog")) {
animalGroup.put("Dog", new ArrayList<>());
}
animalGroup.get("Dog").add(animal);
} else if (animal instanceof Cat) {
if (!animalGroup.containsKey("Cat")) {
animalGroup.put("Cat", new ArrayList<>());
}
animalGroup.get("Cat").add(animal);
}
}
这样,你就可以根据子类将对象进行分组,构成不同的数组。你可以通过animalGroup
来获取每个子类的对象列表。例如,要获取所有的Dog对象列表,可以使用animalGroup.get("Dog")
。
请注意,这里假设你已经定义了Animal类和其子类,并正确实现了相应的方法和关联关系。如果你还没有定义这些类,请根据需求自行创建。