SORU
30 AĞUSTOS 2013, Cuma


Java 8 değer veya işlevini tekrarlamak için iyi bir yol sağlar mı?

Diğer birçok dilde, örneğin. Haskell, kolay bir değeri tekrar ya da birkaç kez fonksiyonu, örn. değeri 1 8 kopya listesi için:

take 8 (repeat 1)

ama bu Java 8'de henüz bulamadım. Java'da böyle bir işlevi 8. hangi FIRSATLAR var?

Veya alternatif olarak bir şey aralığına eşdeğer gibi

[1..8]

Java ayrıntılı bir açıklama için bariz bir alternatif gibi görünüyor

for (int i = 1; i <= 8; i  ) {
    System.out.println(i);
}

bir şey gibi

Range.from(1, 8).forEach(i -> System.out.println(i))

bu belirli bir örnek, çok daha kısa aslında görünmüyor ama... ama umarım daha okunabilir.

CEVAP
30 AĞUSTOS 2013, Cuma


Bu özel örneğin, yapabilirsiniz:

IntStream.rangeClosed(1, 8)
         .forEach(System.out::println);

Eğer bir adım 1, eşleme işlevini kullanabilirsiniz, Örneğin farklı ihtiyacınız varsa, 2 adım için:

IntStream.rangeClosed(1, 8)
         .map(i -> 2 * i - 1)
         .forEach(System.out::println);

Ya da özel bir yineleme oluşturmak ve yinelemenin boyutu sınırı:

IntStream.iterate(1, i -> i   2)
         .limit(8)
         .forEach(System.out::println);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google Россия

    Google Ро

    9 Temmuz 2007
  • pucksz

    pucksz

    24 Mart 2006
  • SegaAmerica

    SegaAmerica

    5 Mart 2008