TreeMap
numaralı telefon numaralarının frekanslarını, ArrayList
numaralı telefondan o frekansa sahip olan anahtarlar ve sayılar gibi sıklıklarla girmek istiyorum.Inverted Collectors.toMap bir ArrayList öğesine eklemek için
Ben iki sorun:
Ben bir "statik olmayan yöntemler statik bağlam başvurulan edilemez" alıyorum ilk parametre hatası (AFAIK akışı bir nesneye başvurur1) - neler oluyor? 0)
2) Collectors.toMap() için 4 parametre vardır - parametre 4'ün yeni bir TreeMap> ile başlatılmasını gerektirdiği gibi, parametre 2 bir ArrayList add() işlevi olabilir ve parametre 3 boş olabilir (belki) . Bu nasıl yapılır? Olmam gereken yere kadar https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html almak nasıl kullanamazsınız Şu anda
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> array = Arrays.asList(1, 2, 4, 5, 6, 4, 8, 4, 2, 3);
Map<Integer, Long> m = array.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(m);
TreeMap<Long, List<Integer>> tm = m.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getValue, ...));
.
Array.asList satırı, eldeki sorudan dikkati dağıtır. –
@JohnEstess mükemmel, ben de kaldırmak için cevabı düzenledim de – Eugene
Aşağıdaki 'toMap' ikinci argüman olarak alarak birkaç satır kaydedebilirsiniz: 'x -> yeni ArrayList <> (singletonList (x.getKey ())) '. – Lii