java中的数据结构是否可以容纳不同类型的对象? 例如,如果需要使用Stack,则堆栈中的元素应该是相同的类型。如果我想要一个容器里面有不同的对象怎么办?
答案 0 :(得分:4)
这听起来像是继承的绝佳机会。最广泛地说,你可以有一个对象列表,任何类型的对象都可以进入。更具体地说,如果你需要一个车辆列表,你可能会有以下内容:
interface Vehicle{
}
class Car implements Vehicle{
}
class Truck implements Vehicle{
}
List<Vehicle> list = new ArrayList<Vehicle>();
list.add(new Car());
list.add(new Truck());
答案 1 :(得分:0)
无论您定义的数据结构是什么,都可以只保留项Object
,因为每个类都隐式继承自Object
。然而,这会占用你的内存,一定要找到一种方法来处理垃圾收集。
例如。 List<Object>
或HashMap<Object,Object> obj;
或类似的东西。
也许如果您知道将在该数据结构中保存的所有类型的对象,您可以使用方法getClass()
switch语句,找出Object所属的类。希望这对你有所帮助。只有在您打算使用的对象之间没有继承时才能实现此解决方案,否则请使用@microsby0的答案