Maison > Java > javaDidacticiel > Une brève discussion sur la différence entre les types Arrays.asList() et ArrayList

Une brève discussion sur la différence entre les types Arrays.asList() et ArrayList

高洛峰
Libérer: 2017-02-04 10:06:12
original
2170 Les gens l'ont consulté

<pre name="code" class="html">Arrays.asList()<br></p>
<p>Convertir un tableau Convertie en objet List, cette méthode retournera un objet de type ArrayList. Cette classe ArrayList n'est pas la classe java.util.ArrayList, mais une classe interne statique de la classe Arrays ! Si vous utilisez cet objet pour ajouter, supprimer et mettre à jour la liste, une UnsupportedOperationException sera signalée. </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:java;toolbar:false"><pre name="code" class="html">自己测试:<span>   </span>//arrayList
<span>        </span>List list = new ArrayList();
<span>        </span>list.add("yz_b_insert");
<span>        </span>list.add("yz_b_del");
<span>        </span>list.add("yz_b_update");
<span>        </span>list.add("yz_b_see");
<span>        </span>System.out.println(list.contains("yz_b_update")+"=="+list);
<span>        </span>//arrays.asList()
<span>        </span>String dd = "yz_b_insert,yz_b_del,yz_b_update,yz_b_see";
<span>        </span>List list2 = Arrays.asList(dd);
<span>        </span>System.out.println(list2.contains("yz_b_update")+"@@@@@"+list2);
Copier après la connexion

Résultat de sortie :

<pre name="code" class="html">arraylist:true==[yz_b_insert, yz_b_del, yz_b_update, yz_b_see]
<pre name="code" class="html">arrays.asList():false@@@@@[yz_b_insert,yz_b_del,yz_b_update,yz_b_see]
Copier après la connexion

name="code" class="html">contient pour déterminer l'existence d'une certaine chaîne dans la collection. Notez que la conversion

arraylist n'est pas disponible </p><p> Je ne peux pas la tester moi-même, quelqu'un avec une expertise peut me le donner. quelques conseils </p><p>Voici les ressources que j'ai trouvées en ligne </p><p></p> <p></p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:java;toolbar:false"><span style="color: rgb(102, 102, 102); font-family: Tahoma;">为什么Arrays.asList产生的List是不可添加或者删除,否则会产生UnsupportedOperationException,就可以得到解释了。 </span><br style="color: rgb(102, 102, 102); font-family: Tahoma;" /><br style="color: rgb(102, 102, 102); font-family: Tahoma;" /><span style="color: rgb(102, 102, 102); font-family: Tahoma;">如果我们想把一个变长或者数据转变成List, 而且期望这个List能够进行add或者remove操作,那该怎么做呢? </span><br style="color: rgb(102, 102, 102); font-family: Tahoma;" /><br style="color: rgb(102, 102, 102); font-family: Tahoma;" /><span style="color: rgb(102, 102, 102); font-family: Tahoma;">我们可以写一个类似的方法,里面直接采用java.util.ArrayList即可。 </span><br style="color: rgb(102, 102, 102); font-family: Tahoma;" /><br style="color: rgb(102, 102, 102); font-family: Tahoma;" /><span style="color: rgb(102, 102, 102); font-family: Tahoma;">比如: </span><br style="color: rgb(102, 102, 102); font-family: Tahoma;" /><pre class="java" name="code" style="color: rgb(102, 102, 102); background-color: rgb(255, 255, 255);">import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MyArrays {
    public static <T> List<T> asList(T... a) {
        List<T> list = new ArrayList<T>();
        Collections.addAll(list, a);
        return list;
    }
}
Copier après la connexion

Le code du test est le suivant :

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
    @SuppressWarnings("unchecked")
    public static void main(String[] args) {
        List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
        print(stooges);
        List<List<String>> seasonsList = Arrays.asList(retrieveSeasonsList());
        print(seasonsList);
        /*
         * 自己实现一个asList方法,能够添加和删除。
         */
        List<String> list = MyArrays.asList("Larry", "Moe", "Curly");
        list.add("Hello");
        print(list);
    }
    private static <T> void print(List<T> list) {
        System.out.println(list);
    }
    private static List<String> retrieveSeasonsList() {
        List<String> seasonsList = new ArrayList<String>();
        seasonsList.add("Spring");
        seasonsList.add("Summer");
        seasonsList.add("Autumn");
        seasonsList.add("Winter");
        return seasonsList;
    }
}
Copier après la connexion

Résultat de sortie :

[Larry, Moe, Curly]

[[Printemps, été, automne, hiver]]

[Larry , Moe, Curly, Bonjour]

Ce qui précède est une brève discussion de l'éditeur sur les différences entre les types Arrays.asList() et ArrayList. J'espère que vous prendrez en charge le site Web PHP chinois~

Pour. plus d'articles sur la différence entre les types Arrays.asList() et ArrayList, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Article précédent:Exemple Java - Modification de liste chaînée Article suivant:Exemple Java - Vecteur de rotation
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Derniers numéros
Rubriques connexes
Plus>
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal