Java Akımları için yeni biriyim ve kafama bu özel probleme yaklaşmanın "en iyi yolu" ile karşı çıkıyorum. Yaklaşık 30.000 girişten (potansiyel olarak çok daha fazla) uzun bir [] sahibim ve 100'lük parçalara ayırmam gerekiyor ve ardından alt diziyle bir API çağrısı yapmalı ve tüm 100 boyutlu parçalar oluşana kadar bunu yapmaya devam etmeliyim. işlendi. Ayrıca, başlangıç listesindeki tüm girişler seçilmemelidir. Bu yüzden, orijinal diziyi işlemek, bazı kriterler bazında belirli elemanlar bazını seçerek ve sonra 100'lük parçalarda "geçerli" elemanlar toplamaya ihtiyacım var. Açıkçası, bunu bir döngüde yapabilirim ve sadece bir imleci System.arrayCopy kullanabilirim (), ya da böyle bir şey. Ama verimsiz görünüyor ve Java Stream API'sini kullanmak için çok cazipim. Bir kaç farklı yaklaşım hakkında düşünüyordum, ama ölü uçlara koşmaya devam ediyorum. Ben uzun [] öğeleri seçimimi yapmak için argüman olarak bir yöntem referans ile filter() kullanıyorum, ama geri kalanı üzerinde sıkışmış. Herhangi bir ipucu çok takdir edilir. Teşekkürler.Binlerce öğeden oluşan uzun bir [] öğeyi 100 öğe yığınına nasıl dönüştürürüm?
cevap
Diziyi parçalar halinde bölmek için, dizin kullanmanız gerekir. Akımlar genellikle endeksleri içeren problemler için uygun değildir, ancak aşağıdaki gibi bir parça akışı elde edebilirsiniz (burada CHUNK_SIZE
100
ve arr
long[]
'dur). Geçen yığın genellikle CHUNK_SIZE
daha uzunluğu daha az olacağı
IntStream.range(0, 1 + Math.floorDiv(arr.length - 1, CHUNK_SIZE))
.mapToObj(i -> Arrays.copyOfRange(arr, i * CHUNK_SIZE, Math.min(arr.length, (i + 1) * CHUNK_SIZE)));
...
Not. Eğer filtreleme sonra parçalara bölmek istiyorsanız
, daha sonra yukarıdaki gibi parçalar bölmek sonra long[]
almak için toArray()
kullanın ve, filter()
yapın dizinin akışı almak gerekir. Bunu akıcı bir tek katlı olarak yapmak mümkün olmazdı.
Teşekkürler Paul. Alttaki diziyi 100'lük filtreli parçalar halinde bölmek için Akışları kullanmanın bir yolu olacağını ve sonuçta ortaya çıkan tüm alt dizileri tüketmek için kullanılabilecek (ve muhtemelen paralelleştirilmiş) bir Akım
Duh, sadece son paragrafta belirttiğiniz şeyi okuyun :-) – user2337270
- 1. Bir öğeden bir öğe nasıl kaldırılır?
- 2. Python'daki bir dizideki bir öğeden yalnızca öğeyi nasıl seçersiniz
- 3. Bir öğenin içindeki bir öğeyi% 100 yüksekliğe ayarlayın
- 4. Belirli bir öğeden önce ve sonra öğeyi bulun
- 5. jQuery Mobile: Daraltılmış bir öğe yap 100% width/NOT inset
- 6. PInvoke Not yığınına
- 7. C++ 'da uzun bir dizgiye nasıl dönüştürebilirim?
- 8. Jquery - Öğeyi ve özniteliği kullanarak bir öğe nasıl bulunur?
- 9. IOS UITableViewCell Öğeyi Seçmek İçin Uzun Bir Basışa Sahip Olmak
- 10. Hamcrest'i, her iki öğeden oluşan bir öğenin, başka bir dizideki her öğeye "yakın" olup olmadığını kontrol etmek için nasıl kullanabilirim?
- 11. Bir UIColor'u onaltılık bir dizeye nasıl dönüştürürüm?
- 12. Bir sayıyı bir INTERVAL dakikaya nasıl dönüştürürüm?
- 13. Bayt dizisinin ilk "n" öğelerini nasıl alabilirim ve bunları doğrudan bir dizeye dönüştürürüm?
- 14. Realm ile rastgele öğe nasıl sorgulanır?
- 15. MYSQL - Binlerce ayırıcı
- 16. Bayt akışını başka bir kodlamaya nasıl dönüştürürüm?
- 17. Bir simetrik matrisi "dist" nesnesine nasıl dönüştürürüm?
- 18. Bir öğe için jquery seçici Bir alt öğeyi YANLIYOR
- 19. NaN'yi 0'a Nasıl Dönüştürürüm?
- 20. AngularJS: Olay işleyicileri, bir yönergeyle eklenen bir öğeden nasıl kaldırılır?
- 21. Bir listeden birden çok öğe seçin
- 22. mvc4'te seçilen öğe açılırken seçilen öğeyi nasıl değiştirebilirim?
- 23. Yerleştirilen öğeden bir contentEditable div öğesine (
- 24. Bir açısal öğeden derlenmiş nodeValue nasıl alınır
- 25. jQuery UI bir öğeden nasıl kaldırılabilir?
- 26. Sql'de 100 yıl boyunca bir takvim tablosu nasıl oluşturulur
- 27. Listelerden oluşan bir listeyi
- 28. İlk öğeden önce ve son öğeden sonra kenar aralığı yoktur
- 29. Binlerce derleyici uyarısını azaltma
- 30. Her liste öğesindeki öğe sayısının bir vektörünü oluşturma
Sadece açıklığa kavuşturmak için - Sipariş devam etmeli mi? Örneğin, akıştaki 1. ve 51. elemanlar (yüklemi karşılayanlar) aynı yığın içinde olmalıdır, değil mi? –
Merhaba Kedar. Hayır, sipariş önemli değil. Sorumlulukta bundan bahsetmeliydim. – user2337270