Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ฟีเจอร์ใหม่ที่เพิ่มเข้ามาใน Stream API ใน Java 9 คืออะไร


ใน Java 9 นั้น Oracle Corporation ได้เพิ่มวิธีการใหม่ที่มีประโยชน์สี่วิธีในการ สตรีม API . วิธีการเหล่านั้น วนซ้ำ() , ของNullable() , takeWhile() และ dropWhile( )

วนซ้ำ()

วนซ้ำ () สามารถใช้เป็นเวอร์ชันสตรีมแทน for-loop แบบเดิมได้ . วิธีนี้มีการปรับปรุงโดยการเพิ่มพารามิเตอร์อื่น ภาคแสดง อินเทอร์เฟซที่ช่วยให้เราสามารถหยุดตัวเลขที่ไม่มีที่สิ้นสุดเหล่านี้ตามเงื่อนไขที่กำหนดไว้ด้วย ภาคแสดง อินเทอร์เฟซ

ตัวอย่าง

import java.util.stream.Stream;
public class StreamIterateMethodTest {
   public static void main(String[] args) {
      Stream.iterate(1, i -> i < 5, i -> i + 1).forEach(System.out::println); // iterate()
   }
}

ผลลัพธ์

1
2
3
4


ofNullable()

ofNullable() วิธีการส่งคืน สตรีม วัตถุ ขององค์ประกอบถ้า ไม่เป็นโมฆะ . มิฉะนั้น จะส่งคืน ว่างเปล่า สตรีม

ตัวอย่าง

import java.util.stream.Stream;
public class StreamOfNullableMethodTest {
   public static void main(String[] args) {
      String str = "TutorialsPoint";
      Stream.ofNullable(str).forEach(System.out::println);    // ofNullable() method
   }
}

ผลลัพธ์

TutorialsPoint


takeWhile()

พารามิเตอร์ส่งผ่านไปยัง takeWhile() เมธอดเป็น ภาคแสดง อินเตอร์เฟซ. วิธีนี้ใช้องค์ประกอบของสตรีมวัตถุจาก left ไปทางขวา จนถึงสภาพของ ภาคแสดง วัตถุไม่สำเร็จอีกต่อไป

ตัวอย่าง

import java.util.stream.Stream;
public class StreamTakeWhileMethodTest {
   public static void main(String[] args) {
      Stream.of(1, 2, 3, 4, 5)
         .takeWhile(i -> i < 5)         // takeWhile() method
         .forEach(System.out::println);
   }
}

ผลลัพธ์

1
2
3
4


dropWhile()

พารามิเตอร์ส่งผ่านไปยัง dropWhile() วิธีการยังเป็น ภาคแสดง อินเตอร์เฟซ. มันอยู่ตรงข้ามกับ takeWhile() กระบวนการ. เมธอดนี้ส่งผ่านแต่ละองค์ประกอบในสตรีมวัตถุจาก ซ้ายไปขวา และละเว้นองค์ประกอบทั้งหมดที่เป็นไปตามเงื่อนไข เมื่อไม่เป็นไปตามเงื่อนไขแล้ว จะใช้องค์ประกอบที่เหลือทั้งหมดเพื่อส่งคืน

ตัวอย่าง

import java.util.stream.Stream;
public class StreamDropWhileMethodTest {
   public static void main(String[] args) {
      Stream.of(3, 2, 1, 4, 6, 7, 8, 9, 10)
            .dropWhile(i -> i < 5)     // dropWhile() method
            .forEach(System.out::println);
   }
}

ผลลัพธ์

6
7
8
9
10