List<Sting> list =new ArrayList<>();和List<Sting> list =new ArrayList<String>();兩者有何區(qū)別?
4 回答

慕哥9229398
TA貢獻1877條經(jīng)驗 獲得超6個贊
沒啥區(qū)別。。數(shù)據(jù)類型的指定是在List<String>時候進行的。
JDK 1.7 的特性里增加了對類型推斷的支持。
增強的對通用實例創(chuàng)建(diamond)的類型推斷
類型推斷是一個特殊的煩惱,下面的代碼: Map<String, List<String>> anagrams = new HashMap<String, List<String>>(); 通過類型推斷后變成: Map<String, List<String>> anagrams = new HashMap<>(); 這個<>被叫做diamond(鉆石)運算符,這個運算符從引用的聲明中推斷類型。

收到一只叮咚
TA貢獻1821條經(jīng)驗 獲得超5個贊
如果是你表達的
List<Sting> list =new ArrayList<>();
List<Sting> list =new ArrayList<String>();
這兩個沒啥區(qū)別,上面一個ArrayList同樣會自動轉換成String的泛型,list可存取的數(shù)據(jù)類型只能是String類型。而如果你的第一行代碼改成
List list = new ArrayList();
這樣就有很大的區(qū)別,list存取的數(shù)據(jù)類型是沒有固定的,你可以存取String,Integer甚至Object類型。
添加回答
舉報
0/150
提交
取消