The Coder's Breakfast - Mot-clé - fp2022-11-22T14:44:11+01:00Olivier Croisierurn:md5:7bccc57fa40daaa0bbb47c16f3d66529DotclearJava 8 : petit exercice pour s'échauffer le neurone à lambdaurn:md5:d8d23236bba3cffd5508e0c32c07c3742014-04-09T07:00:00+02:002014-04-09T07:00:00+02:00Olivier CroisierArticlesfpjava<p>A une semaine de Devoxx France 2014 qui risque d'être riche en sessions sur Java 8 et la programmation fonctionnelle, je vous propose un petit exercice pour vous dérouiller le neurone à lambdas.</p>
<p>Le but du jeu est d'écrire une fonction permettant de concaténer un certain nombre de listes, passées en paramètre sous forme de <em>var-arg</em> :</p>
<pre class="java code java" style="font-family:inherit"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #339933;"><</span>T<span style="color: #339933;">></span> List<span style="color: #339933;"><</span>T<span style="color: #339933;">></span> concatLists<span style="color: #009900;">(</span>List<span style="color: #339933;"><</span>T<span style="color: #339933;">></span>... <span style="color: #006633;">lists</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
<p>Evidemment, on essaiera d'utiliser le plus possible de nouvelles fonctionnalités de Java 8 - le but est de s'amuser et de tordre un peu Java, et pas forcément de respecter les bonnes pratiques industrielles.</p>
<p>Allez hop, en route !</p> <p>Version 1 : foreach
Tout d'abord, comment écrirait-on cette méthode en Java "traditionnel" (Java <=7) ?
A vue de nez, on bouclerait sur les listes à concaténer, et on déverserait le contenu de chaque liste dans une liste résultat initialement vide :
public <T> List<T> concatLists1(List<T>... lists) {
ArrayList<T> result = new ArrayList<>();... <a href="http://thecodersbreakfast.net/index.php?post/2014/04/08/Java-8-petit-exercice-sur-les-lambdas"><em>Lire</em> Java 8 : petit exercice pour s'échauffer le neurone à lambda</a></p>http://thecodersbreakfast.net/index.php?post/2014/04/08/Java-8-petit-exercice-sur-les-lambdas#comment-formhttp://thecodersbreakfast.net/index.php?feed/atom/comments/345