Heim  >  Fragen und Antworten  >  Hauptteil

java - List与ArrayList

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

PHP中文网PHP中文网2741 Tage vor452

Antworte allen(5)Ich werde antworten

  • PHPz

    PHPz2017-04-18 09:44:00

    没啥区别。。数据类型的指定是在List<String>时候进行的。

    JDK 1.7 的特性里增加了对类型推断的支持。

    增强的对通用实例创建(diamond)的类型推断

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

    Antwort
    0
  • PHP中文网

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

    没有区别, jdk1.7开始可以省略右边尖括号内的String。
    (通过声明内的泛型来推测右边, 所以就不需要了。)

    Antwort
    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类型。

    Antwort
    0
  • 阿神

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

    第一个在jdk1.7之后才行,否则编译错误,后一个在1.7之前的写法,当然,1.7之后也可以这么写

    Antwort
    0
  • ringa_lee

    ringa_lee2017-04-18 09:44:00

    jdk1.7之后,没有区别

    Antwort
    0
  • StornierenAntwort