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

เราจะใช้วิธีการของ Stream API ใน Java 9 ได้อย่างไร


สตรีม API มี ฟังก์ชันในตัวมากมาย เพื่อช่วยในการดำเนินการกับคอลเลกชันโดยใช้ท่อส่งกระแสข้อมูล API คือ การเขียนโปรแกรมเชิงประกาศ ที่ทำให้โค้ดมีความแม่นยำและเกิดข้อผิดพลาดน้อยลง ใน Java 9 เพิ่มวิธีการที่มีประโยชน์บางอย่างใน Stream API .

  • Stream.iterate(): วิธีนี้สามารถใช้เป็นเวอร์ชันสตรีมแทน for-loop . แบบเดิมได้ .
  • Stream.takeWhile() :วิธีนี้สามารถใช้ได้ในขณะที่วนรอบที่ รับค่า ในขณะที่เป็นไปตามเงื่อนไข
  • Stream.dropWhile(): วิธีนี้สามารถใช้ได้ในขณะที่วนรอบที่ ลดค่า ในขณะที่เป็นไปตามเงื่อนไข

ในตัวอย่างด้านล่าง เราสามารถใช้เมธอดแบบคงที่ได้:iterate(), takeWhile(), และ dropWhile() วิธีการของ สตรีม API .

ตัวอย่าง

<ก่อน> นำเข้า java.util.Arrays; นำเข้า java.util.Iterator; นำเข้า java.util.stream.Collectors; นำเข้า java.util.stream.Stream; StreamAPITest ระดับสาธารณะ { โมฆะคงสาธารณะหลัก (สตริง args []) { String[] sortedNames ={"Adithya", "Bharath", "Charan", "Dinesh", "ราชา", "Ravi", "Zaheer"}; System.out.println("[Traditional for loop] ดัชนีของชื่อที่ขึ้นต้นด้วย R ="); สำหรับ (int i =0; i startsWith ("R")) { System.out.println (i); } } System.out.println("[Stream.iterate] ดัชนีของชื่อที่ขึ้นต้นด้วย R ="); Stream.iterate (0, i -> i ++i).ตัวกรอง (i -> sortedNames[i].startsWith("R")).forEach (System.out::println); ชื่อสตริงAtoC =Arrays.stream (ชื่อที่เรียงลำดับ)ใช้เวลาสักครู่ (n -> n.charAt (0) <='C').รวบรวม (นักสะสมเข้าร่วม(",")); ชื่อสตริงDtoZ =Arrays.stream (ชื่อที่เรียงลำดับ)dropWhile (n -> n.charAt(0) <='C').รวบรวม (นักสะสมเข้าร่วม(",")); System.out.println("ชื่อ A ถึง C =" + ชื่อAtoC); System.out.println("ชื่อ D ถึง Z =" + ชื่อDtoZ); }}

ผลลัพธ์

[Traditional for loop] ดัชนีของชื่อที่ขึ้นต้นด้วย R =45[Stream.iterate] ดัชนีของชื่อที่ขึ้นต้นด้วย R =45ชื่อ A ถึง C =Adithya,Bharath,CharanNames D ถึง Z =Dinesh,ราชา,Ravi ,ซาฮีร์