SORU
11 Ocak 2015, Pazar


Nasıl bir dizi akışı oluşturabilir miyim?

Bir dizi akışı oluşturmak için ihtiyacım var şu anda

String[] array = {"x1", "x2"};
Arrays.asList(array).stream();

Bazı doğrudan bir yol bir dizi akışı oluşturmak için var mı?

CEVAP
11 Ocak 2015, Pazar


Diziler kullanabilirsiniz.stream E. g.

Arrays.stream(array);

Ayrıca gibi görünüyor @Sound Forge , tarafından belirtildiği gibi Stream.of kullanabilirsiniz

public static<T> Stream<T> of(T... values) {
    return Arrays.stream(values);
}

Ama not Stream.of(intArray) Arrays.stream(intArr) oysa Stream<int[]> IntStream döner türü bir dizi int[] pas veren dönecektir. İlkel türü için özetle 2 arasındaki farkı görebilirsiniz yöntemleri E. g.

int[] arr = {1, 2};
Stream<int[]> arr1 = Stream.of(arr);

IntStream stream2 = Arrays.stream(arr); 

Arrays.stream aşağıdaki kodu için ilkel bir dizi geçirdiğinizde çağrılır

public static IntStream stream(int[] array) {
    return stream(array, 0, array.length);
}

Stream.of ilkel dizi geçirdiğinizde aşağıdaki kodu çağrılır

 public static<T> Stream<T> of(T t) {
     return StreamSupport.stream(new Streams.StreamBuilderImpl<>(t), false);
 }

Dolayısıyla farklı sonuçlar alırsın.

GüncellendiStuart Marks yorum tarafından belirtildiği gibi : Arrays.stream alt aralığı aşırı bir eski sonuçları ikincisi ise yok stream BOY çünkü Stream.of(array).skip(n).limit(m) kullanarak tercih edilir. Nedeni limit(m) Arrays.stream kontrol aralığı ve akış tam boyutunu biliyor oysa m m veya daha az olup olmadığını bilmiyor. Kod this method içinde kaynak okuyabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • adrianisen

    adrianisen

    25 Kasım 2009
  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • mipd1980

    mipd1980

    25 EKİM 2006