Le comte int occurrences avec Java8
Est-il une meilleure façon de compter les int des événements en lien avec Java8
int[] monthCounter = new int[12];
persons.stream().forEach(person -> monthCounter[person.getBirthday().getMonthValue() - 1]++);
Vous devez vous connecter pour publier un commentaire.
Essayer:
Avec Eclipse Collections (anciennement GS Collections), vous pouvez utiliser une structure de données appelée
Bag
que peut contenir le nombre d'occurrences de chaque élément.À l'aide de
IntBag
, le travail:Si vous voulez utiliser un tableau pour garder une trace du temps, vous pouvez combiner avec le
Arrays.setAll()
approche Brian a souligné dans une autre réponse.Ce code sera également travailler avec Java 5 – 7 si vous utilisez les classes internes anonymes au lieu de les lambdas.
Remarque: je suis un committer pour Eclipse Collections
Si vous souhaitez obtenir Integer Integer carte, vous pouvez effectuer les opérations suivantes.
Déjà répondu. Petite Suggestion de mon côté afin de les éliminer null exception de pointeur
c'est à dire De le flux null jeter java.lang.UnsupportedOperationException, java.lang.NullPointerException
count()
retourne de temps vous avez besoin de cast en int, donc ce n'est pas compilé. Il wouyld êtreint size = (int) persons.stream().count()