java如何使用数组在内部存储不同的数据类型
arraylist如何使用array存储不同的数据类型。由于数组是数组列表的内部实现,在数组中,我们只能存储类似的数据类型,如string/int等
想了解arraylist处理多种数据类型数据的内部实现
实际上,我的问题是:在一个列表中,我们可以添加整数、字符串、布尔值等等,但在内部它是由数组实现的。因此,数组如何将不同类型的包装器处理到同一个数组对象中
你可以在下面搜索框中键入要查询的问题!
arraylist如何使用array存储不同的数据类型。由于数组是数组列表的内部实现,在数组中,我们只能存储类似的数据类型,如string/int等
想了解arraylist处理多种数据类型数据的内部实现
实际上,我的问题是:在一个列表中,我们可以添加整数、字符串、布尔值等等,但在内部它是由数组实现的。因此,数组如何将不同类型的包装器处理到同一个数组对象中
# 1 楼答案
ArrayList是泛型类型
所以它不能与基元类型一起工作
它使用对象类型,并使用数组对象进行内部实现
例如,自定义列表:
# 2 楼答案
ArrayList始终要求对象将其存储在列表中,它使用泛型为特定类型创建列表。例如:
这将为Integer类型创建arraylist,Integer是原始数据类型int的包装类,我们不能创建原始类型的arraylist,我们需要使用包装类。如果不使用泛型,那么:
默认情况下,它是为对象类创建的,对象类是包括包装器类在内的所有类的超类。 现在:
在这里,我们创建了一个对象的arraylist,但添加了一个基本整数,它仍然有效,因为它被转换为整数包装器,而object是整数包装器类的超类。所以如果你写:
这是有效的。因此,当您将1添加到arraylist中时,原语1 get将转换为对象类引用的整数包装类
我希望这能简化你
除了您的注释,在ArrayList类源代码中,您可以看到存储所有元素的数组只是:
它是一个对象类的数组。所以它可以存储任何对象,因为ArrayList类实现了泛型,所以如果ArrayList是用特定的类型创建的,那么很容易将这个对象转换为特定的类型