java中,数组既可以存放基本数据类型,又可以存放对象。为什么集合中存放的就必须是对象?求高人指点,

2024-11-25 05:44:11
推荐回答(5个)
回答1:

首先你要清楚,java的底层是C,数组只能存放基本数据类型,这是目前不会改变的,数组是永远不可能存放对象的,你所谓的存放对象只不过是存放对象的引用,实质上,还是个整形数组;而集合分为ArrayList还有linkedList你应该知道,ArrayList的本质其实就是数组,存放的还是引用,而引用只不过在java中你可以叫做对象,但是你不能说数组可以存放对象

回答2:

。。。
集合里只能存放引用类型,若要存放基本类型只能存相对应的包装类

原因是因为集合是泛型类,会有边界擦除,若在<>里指定类型就保留到你指定的类的信息,
若不指定就为Object类,基本类型自动转为相应的包装类存放

所以你只要在里面试一下就会发现不指定类型的话除Object中有的方法外别的方法都不能用

指定为一个父类(或接口)的话,即使你存放进去的是子类却也用不了子类的方法(除非强转)等

回答3:

集合里只能存放引用类型,若要存放基本类型只能存相对应的包装类

原因是因为集合是泛型类,会有边界擦除,若在<>里指定类型就保留到你指定的类的信息,
若不指定就为Object类,基本类型自动转为相应的包装类存放

所以你只要在里面试一下就会发现不指定类型的话除Object中有的方法外别的方法都不能用

指定为一个父类(或接口)的话,即使你存放进去的是子类却也用不了子类的方法(除非强转)等

回答4:

我想问一下谁告诉你的集合存放的必须是对象,集合的实现是基于数组的,API里面有他们的关系,建议多看看API。

回答5:

你在集合中也可以存放基本类型的..除非你在集合创建时定义了泛型...
那就只能存放具体的对象..如果没有明确的申明 也是可以存放的..

还有疑问么