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

ความแตกต่างระหว่าง Iterator และ Spilled Iterator ใน Java


Iterator และ split iterator ทั้งสองอินเทอร์เฟซใช้สำหรับวนซ้ำในคอลเล็กชัน

Split iterator ถูกนำมาใช้ใน Java 8 เพื่อให้เกิดการขนานกัน มันสามารถแยกชุดขององค์ประกอบที่กำหนด และสามารถดำเนินการคู่ขนานกันโดยใช้เธรดอิสระที่แตกต่างกัน มันสามารถเคลื่อนที่ผ่านองค์ประกอบแบบคู่ขนานและตามลำดับได้ มีวิธีการที่สำคัญดังต่อไปนี้ในอินเทอร์เฟซ splitIterator -

  • trySplit - ใช้สำหรับแบ่งชุดองค์ประกอบที่กำหนดออกเป็นหลายส่วน
  • tryAdvance - เทียบเท่ากับเมธอด hasNext/ next ที่มีอยู่ในอินเทอร์เฟซ Iterator
  • getExactSizeIfKnown <> -ใช้สำหรับรับขนาดของชุดองค์ประกอบที่กำหนด
ซีเนียร์ เลขที่ คีย์ Iterator ตัววนซ้ำแยก
1
พื้นฐาน
สามารถใช้สำรวจองค์ประกอบของคอลเลกชันได้
ใช้กับ Stream ได้ด้วย
2
การทำงานจำนวนมาก
สามารถใช้เพื่อสำรวจองค์ประกอบทีละตัวเท่านั้น
สามารถใช้เพื่อสำรวจองค์ประกอบจำนวนมาก
3
ลำดับ /Parallel
สามารถเคลื่อนที่ผ่านองค์ประกอบตามลำดับเท่านั้น
สามารถเคลื่อนที่ผ่านองค์ประกอบในลักษณะต่อเนื่องและแบบขนานได้
4.
External /Internal Iterator
Iterator ใช้การวนซ้ำภายนอกเพื่อทำซ้ำคอลเล็กชัน
ตัวแยกสัญญาณใช้การวนซ้ำภายใน

ตัวอย่างเครื่องแยก

public class Main {
   public static void main(String args[]) {
      List<Integer> listOfInteger = new ArrayList<>();
      listOfInteger.add(78);
      listOfInteger.add(10);
      listOfInteger.add(20);
      listOfInteger.add(30);

      Spliterator<Integer> s = listOfInteger.spliterator();
      Spliterator<Integer> s1 = s.trySplit();

      s.forEachRemaining(System.out::println);
      System.out.println("Traverse Second Half ");
      s1.forEachRemaining(System.out::println);
   }
}