为了账号安全,请及时绑定邮箱和手机立即绑定

java中的集合和ArrayList

java中的集合和ArrayList

江户川乱折腾 2021-12-10 15:24:34
Collection<String> a = new ArrayList<String>();a.add("Hello");a.add("World");System.out.println(a.get(0));谁能解释为什么我不能使用在 ArrayList 类中预定义的 get() 方法?
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

为什么我不能使用在 ArrayList 类中预定义的 get() 方法?

在 Java 中,引用变量类型决定了您可以对对象调用哪些方法。

由于您的引用变量类型是Collection您要为其分配ArrayList对象的类型,因此您只能调用由Collection指定类型声明的方法(在此处查看 API)。

简单来说,get()是由 定义的ArrayList,而不是由Collection接口定义的。

现在,如果要调用该get()方法,则需要将引用类型从Collection更改List为 ,如下所示:

List<String> a = new ArrayList<>();//No need to specify type for ArrayList

你可以在这里查看List接口声明的所有方法,并且是方法之一。get(int i)


查看完整回答
反对 回复 2021-12-10
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

Collection接口没有get()方法。List接口有get()方法。


List<String> a = new ArrayList<String>();


a.add("Hello");

a.add("World");


System.out.println(a.get(0));

现在它会正常工作。


查看完整回答
反对 回复 2021-12-10
?
森栏

TA贡献1810条经验 获得超5个赞

试试这个,

打印集合中的第一项:

System.out.printf(a.iterator().next());

对于 java8 :

System.out.println(a.stream().findFirst().orElse("not found"));


查看完整回答
反对 回复 2021-12-10
  • 3 回答
  • 0 关注
  • 211 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号