这个 拆分器() 方法 ArrayList 返回与ArrayList具有相同元素的拆分器,但创建的拆分器是后期绑定且故障快速的。后期绑定拆分器绑定到元素源。这意味着Arraylist在第一次遍历、第一次拆分或第一次查询估计大小时,而不是在创建拆分器时。它可以与Java8中的流一起使用。此外,它还可以单独或批量遍历元素。拆分器是遍历元素的更好方法,因为它提供了对元素的更多控制。
null
Spliterator = Splitting + Iterator
- 它使用 tryAdvance() 方法在多个线程中分别迭代元素以支持并行处理,
- foreachreserving() 方法在单个线程中顺序迭代元素,
- trySplit() 方法将自身划分为子拆分器以支持并行处理。
拆分器支持数据的顺序和并行处理。
如果你观察下面程序的输出,你会发现拆分器。方法的工作方式与ArrayList相同。但它提供了更好的性能。
语法:
public Spliterator<E> spliterator()
返回: 此方法返回一个 分离器 在ArrayList中的元素上。
下面的程序演示了ArrayList的spliterator()方法:
例1: 在包含电子邮件列表的ArrayList上演示spliterator()方法。
// Java Program Demonstrate spliterator() // method of ArrayList import java.util.*; public class GFG { public static void main(String[] args) { // create an ArrayList which contains // emails for a group of people ArrayList<String> list = new ArrayList<String>(); // Add emails to list list.add( "abc@geeksforgeeks.org" ); list.add( "user@geeksforgeeks.org" ); list.add( "pqr@geeksforgeeks.org" ); list.add( "random@geeksforgeeks.org" ); list.add( "randomuser@geeksforgeeks.org" ); // create Spliterator of ArrayList // using spliterator() method Spliterator<String> emails = list.spliterator(); // print result from Spliterator System.out.println( "list of Emails:" ); // forEachRemaining method of Spliterator emails.forEachRemaining((n) -> System.out.println(n)); } } |
输出:
list of Emails: abc@geeksforgeeks.org user@geeksforgeeks.org pqr@geeksforgeeks.org random@geeksforgeeks.org randomuser@geeksforgeeks.org
例2: 在包含用户列表的ArrayList上演示spliterator()方法。
// Java Program Demonstrate spliterator() // method of ArrayList import java.util.*; public class GFG { public static void main(String[] args) { // create an ArrayList which contains // user details from user class ArrayList<user> list = new ArrayList<user>(); // Add emails to list list.add( new user( "Aman" , 24 )); list.add( new user( "Suraj" , 23 )); list.add( new user( "Amar" , 24 )); list.add( new user( "Kajal" , 22 )); // create Spliterator of ArrayList // using spliterator() method Spliterator<user> users = list.spliterator(); // print result from Spliterator System.out.println( "list of Emails:" ); // forEachRemaining method of Spliterator users.forEachRemaining((n) -> print(n)); } public static void print(user u) { System.out.println( "User name : " + u.name + " and user age: " + u.age); } } // create a user class class user { String name; int age; user(String name, int age) { this .name = name; this .age = age; } } |
输出:
list of Emails: User name : Aman and user age: 24 User name : Suraj and user age: 23 User name : Amar and user age: 24 User name : Kajal and user age: 22
参考: https://docs.oracle.com/javase/10/docs/api/java/util/ArrayList.html#spliterator()
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END