亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號