Kotlin et librairies tierces
- 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.
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:
- Ok : jo@pipo.org
- Ok : ma_mu@m.ca
- Ok : a.a@a.ca
- Ko : a.a@a.aa
- Ko : ab@ab
- Ko : a.b@ab
- Ko : jo
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.