«java-stream» etiketlenmiş sorular

Akış API'sının kullanımı ile ilgili sorular için bu etiketi kullanın. Java 8'de tanıtıldı ve koleksiyonlardaki filtre-harita-azaltma boru hatları gibi değer akışlarında işlevsel stil işlemlerini destekler.

4
Peek () ve allMatch (), Java 8 Stream API'sında birlikte nasıl çalışır?
Aşağıdaki gibi peek yöntemi Java 8 Stream API hakkında bir sınav buldum Arrays.asList("Fred", "Jim", "Sheila") .stream() .peek(System.out::println) .allMatch(s -> s.startsWith("F")); Çıktı Fred Jim Bu akışın nasıl çalıştığı konusunda kafam karıştı Beklediğim sonuç Fred Jim Sheila Peek () yöntemi bir ara işlemdir ve Stream'deki her öğeyi işler. Birisi bana bunu açıklayabilir …

8
İlk (sıfır dizinli) öğeyi akıştan koşullu olarak kaldır
Aşağıdaki kod var: Stream<String> lines = reader.lines(); Yumruk dizesi eşitse Akıştan "email"ilk dizeyi kaldırmak istiyorum. Akıştaki diğer dizeler için bu kontrole ihtiyacım yok. Nasıl başarabilirim? PS Tabii listeye dönüştürebilirim, sonra eski okulu döngü için kullanabilirim, ancak tekrar akışa ihtiyacım var.

6
Java'da verilen harita değerinden en son tarih nasıl bulunur?
Dize veri türü olarak tarih değerlerde, aşağıdaki değerleri ile karma harita yaşıyorum. Haritadaki tüm tarihleri ​​karşılaştırmak ve çok yakın tarihli bir anahtar / değer çiftini ayıklamak istiyorum. Anahtarlarla değil değerlerle karşılaştırmak istiyorum. Aşağıdaki kodu ekledim import java.util.HashMap; import java.util.Map; public class Test { public static void main(String[] args) { Map<String, …

4
Akışlarla istisnaları işleme
Ben bir Map<String,List<String>>ve listeden Map<String,List<Long>>her biri Stringbir temsil çünkü dönüşmesini istiyorum Long: Map<String,List<String>> input = ...; Map<String,List<Long>> output= input.entrySet() .stream() .collect(toMap(Entry::getKey, e -> e.getValue().stream() .map(Long::valueOf) .collect(toList())) ); Benim asıl meselem her Stringbir doğru temsil olmayabilir Long; bazı sorunlar olabilir. Long::valueOfistisnalar doğurabilir. Bu durumda boş veya boş değer döndürmek istiyorumMap<String,List<Long>> Çünkü …

4
HashMap değerlerini yinelemenin ve kopyalamanın etkili yolu
Dönüştürmek istiyorum: Map<String, Map<String, List<Map<String, String>>>> inputMap için: Map<String, Map<String, CustomObject>> customMap inputMapyapılandırmada sağlanır ve hazırdır ancak customMapBiçimlendirmem gerekiyor . CustomObject, List<Map<String, String>>bir işlevde birkaç kod satırı kullanılarak türetilir . Giriş haritası yineleme ve customMap anahtar değerleri kopyalama normal bir yol denedim. Java 8 veya başka bir kısayol kullanarak bunu …

3
Java Stream: Birden çok aralıklı filtre
Bir kaynağı filtrelemek ve bir alana dayalı bazı öğeleri dışlamak çalışıyorum. Hariç tutmak için (hariç tutulması gereken bir kimlik içeren) bir kümem ve bir liste (hariç tutulması gereken kimlikleri birden çok aralık içerir). Aşağıdaki mantığı yazdım ve 2. filtre mantığından memnun değilim. Java 8 ile yapmanın daha iyi bir yolu …

4
Java akışına sahip Çalışan Listesinden belirli bir katılım tarihinden önce ve sonra Çalışanları edinin
Farklı katılma tarihleri Listolan Employees var . Akışları kullanarak Listeden belirli bir katılım tarihinden önce ve sonra Çalışanları Almak istiyorum. aşağıdaki kodu denedim, List<Employee> employeeListAfter = employeeList.stream() .filter(e -> e.joiningDate.isAfter(specificDate)) .collect(Collectors.toList()); List<Employee> employeeListBefore = employeeList.stream() .filter(e -> e.joiningDate.isBefore(specificDate)) .collect(Collectors.toList()); class Employee{ int id; String name; LocalDate joiningDate; } Bunu tek …

5
Her istek öğesi için birden çok iş parçacığı oluşturma
Sipariş düzeyinde multithreading kullanarak aşağıdaki kodu işlemeye çalışıyorum. List<String> orders = Arrays.asList("order1", "order2", "order3", "order4", "order1"); Geçerli sıralı yürütme: orders.stream().forEach(order -> { rules.forEach(rule -> { finalList.add(beanMapper.getBean(rule) .applyRule(createTemplate.apply(getMetaData.apply(rule), command), order)); }); }); Kullanmayı denedim: orders.parallelStream().forEach(order -> {}} // code snippet. Ancak rules.forEach (kural -> {}} sırasını değiştiriyor. Örneğin: Giriş: List<String> orders …

3
Büyük veri dosyaları satır satır nasıl kopyalanır?
35GB'lık bir dosyam var CSV. Her satırı okumak ve bir koşulla eşleşiyorsa satırı yeni bir CSV'ye yazmak istiyorum. try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("source.csv"))) { try (BufferedReader br = Files.newBufferedReader(Paths.get("target.csv"))) { br.lines().parallel() .filter(line -> StringUtils.isNotBlank(line)) //bit more complex in real world .forEach(line -> { writer.write(line + "\n"); }); } } Bu …

3
Java 8 Akışı kullanılarak liste boşsa varsayılan liste döndürülüyor mu?
Aşağıdakilerin tek bir akış işlemi kümesi olarak gerçekleştirilebilmesi için herhangi bir yol var mı, önerilenProducts'ın boş olup olmadığını açıkça kontrol etmek yerine varsayılan listeyi döndürün yoksa filtrelenmiş listeyi döndürün ? public List<Product> getRecommendedProducts() { List<Product> recommendedProducts = this.newProducts .stream() .filter(isAvailable) .collect(Collectors.toList()); if (recommendedProducts.isEmpty()) { return DEFAULT_PRODUCTS; } return recommededProducts; }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.