Même réponse qu'invik, les lambdas pourraient vraiment clarifier ton code mais ton tableau va poser problème en l'état, voir pour le transformer en amont.
Sous réserve de Java 8, un truc un peu plus sexy :
Code :
final Map<Color, Long> histogram = Arrays. stream(a ) . map(aElem -> new Color(/* un truc à partir de tes éléments */)) .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
|
Vachement plus concis, mais pas applicable en l'état avec ton tableau.
Edit : je pensais qu'il y aurait un moyen élégant de transformer ton tableau en une liste de triplet (et donc pouvoir utiliser le code ci-dessus), mais il n'y a rien de builtin pour partitionner un stream en collections de taille fixe (voir ce thread http://stackoverflow.com/questions [...] 8-stream). Peut-être en amont de ton algo ?
Message édité par LeRiton le 18-01-2016 à 14:44:14