搜尋

首頁  >  問答  >  主體

java - List与ArrayList

List<Sting> list =new ArrayList<>();
和List<Sting> list =new ArrayList<String>();
两者有何区别?

PHP中文网PHP中文网2827 天前486

全部回覆(5)我來回復

  • PHPz

    PHPz2017-04-18 09:44:00

    沒啥區別。 。資料類型的指定是在List時候進行的。

    JDK 1.7 的特性增加了對類型推論的支持。

    增強的對通用實例創建(diamond)的類型推斷

      类型推断是一个特殊的烦恼,下面的代码: 
         Map<String, List<String>> anagrams = new HashMap<String, List<String>>(); 
    
      通过类型推断后变成: 
         Map<String, List<String>> anagrams = new HashMap<>(); 
      这个<>被叫做diamond(钻石)运算符,这个运算符从引用的声明中推断类型。 
      
    

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 09:44:00

    沒有差別, jdk1.7開始可以省略右邊尖括號內的String。
    (透過聲明內的泛型來推測右邊, 所以就不需要了。)

    回覆
    0
  • 迷茫

    迷茫2017-04-18 09:44:00

    如果是你表達的

    List<Sting> list =new ArrayList<>();
    List<Sting> list =new ArrayList<String>();
    

    這兩個沒啥區別,上面一個ArrayList同樣會自動轉換成String的泛型,list可存取的資料型別只能是String型別。而如果你的第一行程式碼改成

    List list = new ArrayList();
    

    這樣就有很大的差別,list存取的資料型別是沒有固定的,你可以存取String,Integer甚至Object型別。

    回覆
    0
  • 阿神

    阿神2017-04-18 09:44:00

    第一個在jdk1.7之後才行,否則編譯錯誤,後一個在1.7之前的寫法,當然,1.7之後也可以這麼寫

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-18 09:44:00

    jdk1.7之後,沒有差別

    回覆
    0
  • 取消回覆