Konvertieren Sie ListLong in MapLong, Long, das Vorkommen zählt

8

Ich spiele mit Java 8 herum und ich weiß, dass dies möglich sein muss, indem ich die Dokumentation lese, ich kann einfach nicht herausfinden, wie es geht.

Ich habe den folgenden Arbeitscode:

%Vor%

Wichtig ist, dass ich ein List<Long> habe, das kann Duplikate auf einigen Long Zahlen haben.

Nun möchte ich es in ein Map<Long, Long> umwandeln mit als Schlüssel das Element und als Wert die Vorkommen.

Ich dachte das:

%Vor%

würde funktionieren, aber nicht. Ich habe die Beispiele in der Dokumentation zu java.util.stream.Collectors .

Wie muss ich diese Funktionen verwenden?

    
skiwi 23.02.2014, 20:53
quelle

2 Antworten

10

Wenn Sie die Elemente gruppieren möchten, müssen Sie groupingBy :

verwenden %Vor%     
nosid 23.02.2014, 21:12
quelle
2

Wenn Sie Eclipse-Sammlungen verwenden (früher GS-Sammlungen ), könnten Sie für die Primfaktorenliste und die Primfaktorzahl Folgendes verwenden. Eine Tasche ist im Grunde ein Map<K, Integer> .

%Vor%

Verwenden Sie eine FastList in der primeFactors-Methode oben.

Im Fall von Eclipse-Sammlungen haben wir primitive Listen und Taschen, daher müssen Sie keine Ergebnisse einrahmen.

%Vor%

Verwenden Sie eine LongArrayList statt in der Methode primeFactors oben.

Hinweis: Ich bin ein Committer für Eclipse Collections.

    
Donald Raab 25.02.2014 22:30
quelle