Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

Démonstration dutilisation de la classe java.util.LinkedList

/**
 *   Fichier Liste1.java
 *
 *   Démonstration d'utilisation de la classe java.util.LinkedList
 *
 *   (Voir l'ex�cution et LinkedList.doc pour comprendre et
 *    pour les explications suppl�mentaires)
 *
 *   Pr�par� par LVN pour IFT 1170
 *
 */

import java.util.*;

public class Liste1
{

	/* cr�er la liste lin�aire des diviseurs (Integer) d'un nombre
	   dans l'ordre LIFO (Last In First Out)
	*/
	static LinkedList<Integer> creerListe(int nombre) {
		LinkedList<Integer> uneListe = new LinkedList<Integer>(); // liste VIDE au d�but
		for (int candi = 1 ; candi <= nombre ; candi++)
			   if (nombre % candi == 0)
				    uneListe.addFirst( candi );
		return uneListe;
	}

	// une mani�re de parcourir une liste lin�aire:
	static void afficher(LinkedList<Integer> liste, String message) {
		System.out.printf("\nContenu %s\n", message);

		for (int i = 0 ; i < liste.size() ; i++)
			  System.out.printf("%2d) %8d\n", i+1, liste.get(i));

		System.out.println();

	}

    // une autre mani�re de parcourir une liste lin�aire dans 2 sens
    static void afficher(String message, LinkedList<Integer> liste, int ordre) {
		System.out.printf("\nContenu %s\n" , message);
        int rang = 0;

        if(ordre == 1){
           System.out.println("Du d�but � la fin");
			   ListIterator versAvant = liste.listIterator();
           while(versAvant.hasNext())
                    System.out.printf("%d  %8d\n", ++rang,versAvant.next());
        }
        else {
           System.out.println("En ordre inverse");
			   ListIterator inverse = liste.listIterator(liste.size());
           while(inverse.hasPrevious())
                    System.out.printf("%d  %8d\n", ++rang, inverse.previous());
           }

        System.out.println();
    }

	// d�mo de qq m�thodes fr�quemment utilis�es pour g�rer une liste
	static void demo(LinkedList<Integer> liste) {
	  System.out.println("Contenu de la liste de " + liste.size() +
						 " �l�ments  :\n" + liste);
	  System.out.println("\nPremier �l�ment : " + liste.getFirst());
	  System.out.println("Dernier �l�ment : " + liste.getLast());

	  System.out.println("\nR�sultats de la recherche :\n");
	  System.out.println(" a) de 25 :\n");
	  System.out.println("    avec indexOf     : " + liste.indexOf(25));
	  System.out.println("    avec lastIndexOf : " + liste.lastIndexOf(25));
	  System.out.println("    avec contains    : " + liste.contains(25));

	  System.out.println(" b) de 1000 :\n");
	  System.out.println("    avec indexOf     : " + liste.indexOf(1000));
	  System.out.println("    avec lastIndexOf : " + liste.lastIndexOf(1000));
	  System.out.println("    avec contains    : " + liste.contains(1000));

	  liste.addFirst( 1234 );
	  liste.addLast ( 333 );
	  liste.add(1, 543);

	  liste.set(5, 9999);

  	  System.out.println("Contenu de la liste de " + liste.size() +
						 " �l�ments (apres ces 3 ajouts et 1 modification):\n" + liste);

	  System.out.println("\nDeuxi�me �l�ment de la liste : " +
						     liste.get(1));

	  System.out.println("\nSixi�me �l�ment de la liste : " +
						     liste.get(5));


	  System.out.println("On supprime le dernier �l�ment : " + liste.remove(liste.size() - 1));
	  System.out.println("On supprime l'�l�ment � l'indice 3  : " +liste.remove(3));
	  System.out.println("On supprime l'�l�ment : " + liste.removeFirst());
	  System.out.println("On supprime l'�l�ment : " + liste.removeLast());
	  System.out.println("On supprime l'�l�ment ??? " + liste.remove( new Integer("10")));

	  System.out.println("Contenu de la liste (avec toString) de " + liste.size() +
						 " elements  :\n" + liste);

	  afficher(liste," (avec une mani�re de parcourir la liste) :");
	  afficher(" (avec une autre mani�re de parcourir la liste) :", liste, 1);
	  afficher(" (avec une autre mani�re de parcourir la liste) :", liste, 2);

	  System.out.printf("\nValeur la plus petite : %d\n", Collections.min(liste));
      System.out.printf("Valeur la plus grande : %d\n\n", Collections.max(liste));
	  Collections.sort(liste);
	  System.out.println("Cette liste triee : " + liste);

	  int k = Collections.binarySearch(liste, 4 );
	  System.out.printf("Indice dans la recherche de 4  : %d\n", k);

      // cas o� on cherche une valeur inexistence
	  k = Collections.binarySearch(liste, 125 );
	  System.out.printf("Indice dans la recherche de 125  : %d\n", k);
	  // ins�rer 125 � la bonne place afin que liste reste tri�e
	  liste.add( -k-1, 125);
	  System.out.println("Cette liste reste triee : " + liste);

	}


	public static void main (String[] args)
	{
	   LinkedList<Integer> liste = creerListe(100);
	   demo(liste);
	}
}
/* Ex�cution:
--------------------Configuration: <Default>--------------------
Contenu de la liste de 9 �l�ments  :
[100, 50, 25, 20, 10, 5, 4, 2, 1]

Premier �l�ment : 100
Dernier �l�ment : 1

R�sultats de la recherche :

 a) de 25 :

    avec indexOf     : 2
    avec lastIndexOf : 2
    avec contains    : true
 b) de 1000 :

    avec indexOf     : -1
    avec lastIndexOf : -1
    avec contains    : false
Contenu de la liste de 12 �l�ments (apres ces 3 ajouts et 1 modification):
[1234, 543, 100, 50, 25, 9999, 10, 5, 4, 2, 1, 333]

Deuxi�me �l�ment de la liste : 543

Sixi�me �l�ment de la liste : 9999
On supprime le dernier �l�ment : 333
On supprime l'�l�ment � l'indice 3  : 50
On supprime l'�l�ment : 1234
On supprime l'�l�ment : 1
On supprime l'�l�ment ??? true
Contenu de la liste (avec toString) de 7 elements  :
[543, 100, 25, 9999, 5, 4, 2]

Contenu  (avec une mani�re de parcourir la liste) :
 1)      543
 2)      100
 3)       25
 4)     9999
 5)        5
 6)        4
 7)        2


Contenu  (avec une autre mani�re de parcourir la liste) :
Du d�but � la fin
1       543
2       100
3        25
4      9999
5         5
6         4
7         2


Contenu  (avec une autre mani�re de parcourir la liste) :
En ordre inverse
1         2
2         4
3         5
4      9999
5        25
6       100
7       543


Valeur la plus petite : 2
Valeur la plus grande : 9999

Cette liste triee : [2, 4, 5, 25, 100, 543, 9999]
Indice dans la recherche de 4  : 1
Indice dans la recherche de 125  : -6
Cette liste reste triee : [2, 4, 5, 25, 100, 125, 543, 9999]

Process completed.



*/

Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.