time
özniteliği içeren Nesnelerin Listesini, tercihen akışları ve toplayıcıları kullanarak 5 dakikalık aralıklarla gruplamak istiyorum.Listedeki Nesneleri Akışlar ve Java 8 kullanarak Niteliklere Göre Diğer Listelere Nasıl Gruplandırılır?
StackOverflow üzerinde bulduğum tek olası çözüm, kaç aralığın (altbilginin) ihtiyacım olduğunu hesaplamak, her bir nesneyi bu Listelerin her birine eklemek ve ilgili zaman dilimine uymayanları filtrelemektir. güzel bir çözüm.
Ben buna benzer bir şey düşündüm:
List<MyObject> list = new ArrayList<MyObject>();
.......
List<List<MyObject>> grouped = list.stream().collect(Collectors.groupingBy(obj -> obj.getTime()/intervalLength));
Bu tabii doenst çalışmalarını:
( How to group elements of a List by elements of another in Java 8 Burada Konu bulabilirsiniz).Umarız, Java 8 &'un özellikleri giderek daha fazla kullanıldığında, böyle bir Problem için bir çimlendirme çözümü bulabiliriz.
Selamlar, Claas M.
DÜZENLEME: End'indeki , ben @Harsh Poddar en çözümünü kullanılan ve
for(Map.Entry<Integer, List<MyObject>> entry:map.entrySet())
list.add(entry.getValue());
Not kullanarak Listelerinin bir Listesine Haritası dönüştürüldü: Liste zorunda kaldı daha sonra sıralanabilir.
Bu işe yaradı, teşekkürler! –