recherche

Maison  >  Questions et réponses  >  le corps du texte

java - List与ArrayList

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

PHP中文网PHP中文网2809 Il y a quelques jours481

répondre à tous(5)je répondrai

  • PHPz

    PHPz2017-04-18 09:44:00

    Aucune différence. . Le type de données est spécifié lorsque List<String>.

    JDK 1.7 propose une prise en charge supplémentaire de l'inférence de type.

    Inférence de type améliorée pour la création d'instances génériques (diamant)

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

    répondre
    0
  • PHP中文网

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

    Il n'y a aucune différence. À partir de jdk1.7, vous pouvez omettre la chaîne entre les crochets angulaires à droite.
    (Le côté droit est déduit par le générique dans la déclaration, il n'est donc pas nécessaire.)

    répondre
    0
  • 迷茫

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

    Si vous l'avez exprimé

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

    Il n'y a aucune différence entre les deux. La ArrayList ci-dessus sera également automatiquement convertie en type générique de String. Le type de données auquel la liste peut accéder ne peut être que le type String. Et si votre première ligne de code est remplacée par

    List list = new ArrayList();
    

    Cela fait une grande différence. Le type de données accessible par la liste n'est pas fixe. Vous pouvez accéder aux types String, Integer et même Object.

    répondre
    0
  • 阿神

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

    Le premier doit être écrit après jdk1.7, sinon il y aura une erreur de compilation. Le dernier doit être écrit avant la 1.7. Bien sûr, il peut aussi être écrit comme ça après la 1.7

    .

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 09:44:00

    Après jdk1.7, il n'y a aucune différence

    répondre
    0
  • Annulerrépondre