java中的集合和ArrayList

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


a.add("Hello");

a.add("World");


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

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


江户川乱折腾
浏览 212回答 3
3回答

叮当猫咪

为什么我不能使用在 ArrayList 类中预定义的 get() 方法?在 Java 中,引用变量类型决定了您可以对对象调用哪些方法。由于您的引用变量类型是Collection您要为其分配ArrayList对象的类型,因此您只能调用由Collection指定类型声明的方法(在此处查看 API)。简单来说,get()是由 定义的ArrayList,而不是由Collection接口定义的。现在,如果要调用该get()方法,则需要将引用类型从Collection更改List为 ,如下所示:List<String>&nbsp;a&nbsp;=&nbsp;new&nbsp;ArrayList<>();//No&nbsp;need&nbsp;to&nbsp;specify&nbsp;type&nbsp;for&nbsp;ArrayList你可以在这里查看List接口声明的所有方法,并且是方法之一。get(int i)

慕桂英4014372

Collection接口没有get()方法。List接口有get()方法。List<String> a = new ArrayList<String>();a.add("Hello");a.add("World");System.out.println(a.get(0));现在它会正常工作。

森栏

试试这个,打印集合中的第一项:System.out.printf(a.iterator().next());对于 java8 :System.out.println(a.stream().findFirst().orElse("not&nbsp;found"));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java