Maison  >  Article  >  Java  >  Explication détaillée d'exemples d'utilisation de List en Java

Explication détaillée d'exemples d'utilisation de List en Java

黄舟
黄舟original
2017-09-07 10:17:021288parcourir

Cet article présente principalement des informations pertinentes sur les exemples d'utilisation de la liste Java. Les amis qui en ont besoin peuvent se référer à

Exemples d'utilisation détaillés de la liste Java

Java peut Le principe de Le tableau de variables consiste à créer continuellement de nouveaux tableaux et à ajouter le tableau d'origine au nouveau tableau. L'utilisation de Java List est expliquée en détail ci-dessous.

  • Liste : Les éléments sont dans l'ordre (vous pouvez les retirer au fur et à mesure que vous les enregistrez, l'ordre ne sera pas gâché), et les éléments peuvent être répétés (il y a un 3 sur l'indice 1 et un 3 sur l'indice 2 Il peut aussi y en avoir 3) car le système de collecte a un index

  • ArrayList : la structure de données sous-jacente utilise une structure de tableau (la longueur du tableau est variable et peut être étendu de 50%) ( La caractéristique est que la requête est rapide, mais l'ajout et la suppression sont lents) le thread n'est pas synchronisé

  • LinkedList : la structure de données sous-jacente est une structure de liste chaînée (la caractéristique est que la requête est lente et l'ajout et la suppression sont rapides)

  • Vecteur : La couche inférieure est la synchronisation des threads de la structure de données du tableau (la longueur du tableau est variable et étendu à 100 %) (la requête, l'ajout et la suppression sont tous deux très lents, remplacés par ArrayList)

Liste : méthodes uniques, toutes les méthodes qui peuvent utiliser des marqueurs de coin sont uniques au système


boolean add(int index, E element)
boolean addAll(index,Collection)


public static void List_add(){
   ArrayList a1 = new ArrayList();
   a1.add("java");
   a1.add("php");//List集合中的元素可以重复
  a1.add(".net");
   System.out.println("原集合:"+a1);
   a1.add(1, "Flash");
   a1.add(0, "ps");  
   System.out.println(a1);

  ArrayList a2 = new ArrayList();
  a2.add("javascript");
  a2.add("3dMax");
  a2.add("IBM");

  a1.addAll(0, a2);
  System.out.println(a1);
}

Supprimer l'élément à la position spécifiée


 boolean remove(int index)


public static void List_remove(){
   ArrayList a1 = new ArrayList();
   a1.add("javascript");
   a1.add("php");
   a1.add("flash");
   System.out.println("原集合:"+a1);

   a1.remove(0);
   System.out.println(a1);
}

Modifier l'élément avec l'ensemble d'index spécifié (index int, élément E) Renvoie l'élément modifié


public static void List_set() {
   ArrayList a1 = new ArrayList();
   a1.add("javascript");
   a1.add("php");
   a1.add(".net");
   System.out.println("原集合:"+a1);

   a1.set(1, "falsh");
   System.out.println(a1);
}

Vérifier


get(int index) // 返回列表中指定位置的元素
subList(int fromIndex, int toIndex)  // 返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分元素。


public static void List_get() {
   ArrayList a1 = new ArrayList();
   a1.add("java");
   a1.add("php");
   a1.add("flash");

   System.out.println(a1.get(0));//获取指定角标的元素,有了该方法就可以遍历该集合中的所有元素

   System.out.println(a1.subList(1, 3));//获取集合中某一部分的元素,包含头不包含尾
}

Itérateur unique à la collection List : ListIterator (est un sous -interface de l'itérateur)

Remarque :

Lors de l'itération, ce n'est pas le cas. Les éléments de la collection peuvent être manipulés via les méthodes de l'objet de collection car une ConcurrentModificationException ( (exception de concurrence) se produira. Par conséquent, lors de l'utilisation d'un itérateur, vous ne pouvez utiliser la méthode iterator que pour créer des éléments. La méthode Iterator étant limitée, vous ne pouvez juger les éléments que pour les opérations de suppression et de suppression, si vous souhaitez d'autres opérations telles. comme ajout, modification, etc., vous devez utiliser sa sous-interface, ListIterator. Cette interface ne peut être obtenue que via la méthode listIterator de la collection List


public class ListIteratorDemo {
   public static void main(String[] args) {
     ArrayList a1 = new ArrayList();
     a1.add("java01");
     a1.add("java02");
     a1.add("java03");
     a1.add("java04");

     System.out.println("原集合是:"+a1);

   /*在迭代过程中准备添加或者删除元素
   Iterator it = al.iterator();
   while (it.hasNext()){
     Object obj = it.next();

     if (obj.equals("java02"))
     //al.add("java008");//会出现并发异常,因为迭代器正在操作集合,不能再用集合的方法操作集合了
     it.remove();//将java02的引用从集合中删除了
     System.out.println("obj:"+obj);
    }
    */  
  //只有List的listIterator有增,删,改,查这些功能,因为只有List有索引
    ListIterator li = a1.listIterator();
     while (li.hasNext()){
     if(li.next().equals("java02"))
     //li.add("java009");
     li.set("java006");
    }  
  }
}
Vector : L'énumération est une méthode d'extraction unique de Vector, qui est très similaire à l'itérateur (en fait, l'énumération et l'itération sont les mêmes) et a été remplacée par l'itérateur


 public class VectorDemo {
   public static void main(String[] args) {
     Vector v = new Vector();
     v.add("java01");
     v.add("java02");
     v.add("java03");
     v.add("java04");

     for(Enumeration en = v.elements();en.hasMoreElements();){
      System.out.println(en.nextElement());
    }
  }
}
LinkedList :

Méthodes spéciales :

addFirst(); ajouter des éléments en tête

addLast();

getFirst(); getLast();

Récupère les éléments mais ne les supprime pas. S'il n'y a aucun élément dans la collection, NoSuchElementException se produira

removeFirst(); removeLast();

Obtenez l'élément mais supprimez l'élément. S'il n'y a aucun élément dans la collection, NoSuchElementException se produira

Dans JDK1.6, méthodes alternatives

offerFirst(); offerLast();

peekFirst(); () ; Récupère l'élément, mais l'élément n'est pas supprimé. S'il n'y a aucun élément dans la collection, null sera renvoyé

pollFirst(); pollLast(); L'élément est obtenu, mais l'élément est supprimé. S'il n'y a aucun élément dans la collection, null


sera renvoyé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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