Aller au contenu principal

Librairies tierces 📘

Avant la séance (2h)
  • Parcourir la recette sur l'ajout d'une libraire tierce.
  • Il existe des milliers de librairies Java pour faire presque tout, qui fonctionnent généralement bien. De nombreuses compagnies tech comme Google, Twitter ou Square partagent leur librairies.
À faire pendant la séance
  • Demo de MavenRepository: librairie, version
  • Exemple de recherche de librairie : exemple de https://square.github.io
    • Interopérabilité des librairies Java et Kotlin
  • Compléter les exercices de la semaine
  • Continuer le TP1.

Attention : une grande partie du travail de ces exercices consiste à faire vos propres recherches. Lorsqu'on commence à utiliser une nouvelle librairie, il est généralement recommandé de commencer en lisant la documentation et les exemples fournis par les développeurs de la librairie.

Exercices

Crée-toi un nouveau projet dans lequel tu pourras créer différents fichiers exécutables pour les exercices.

Exercice Jsoup​

À l'aide de la librairie Jsoup, vous devez écrire un petit programme qui prend une url en paramètre, qui télécharge la page web correspondant, puis qui extrait toutes les balises <a> de la page et affiche leur attribut href.

Par exemple, si la page contient

<a href="pipo.html">test</a>

le programme devra afficher test = pipo.html dans la console.

Exercice ValidationCourriel​

Tu dois trouver une librairie qui valide si un courriel est valide. Écris un programme pour voir si la méthode fournie par la librairie fonctionne sur les exemples suivants:

Exercice SuperListe​

On veut comparer les performances de plusieurs implémentations de List quand on parle de performance pour l'insertion. On souhaite comparer le temps d'exécution nécessaire pour:

  • ajouter 100 000 éléments en dernière position dans la liste
  • ajouter 100 000 éléments en première position dans la liste
  • ajouter 100 000 éléments dans une position au hasard dans la liste

Pour permettre de tester plusieurs listes, on vous recommande de créer une méthode

fun testeCetteListe(liste: MutableList<Int>) {
val random: Random = Random(1234)
val a = System.currentTimeMillis()
// ajouter 100 000 elements en dernière position liste.add(nombre);
val b = System.currentTimeMillis()
// ajouter 100 000 elements en première position liste.add(0, nombre);
val c = System.currentTimeMillis()
// ajouter 100 000 elements position au hasard liste.add(random.nextInt(liste.size + 1), nombre);
val d = System.currentTimeMillis()
// afficher b-a, c-b, d-c qui sont les durées d'exécution en millisecondes
}

Le but est de voir quelle liste est la plus performante entre LinkedList, ArrayList et une dernière que vous trouverez dans la librairie suivante : GapList.

Ainsi, avec un main qui appelle la méthode testeCetteListe pour une LinkedList puis une ArrayList puis une GapList, vous aurez une bonne idée des performances respectives.