Java中的ArrayList spliterator()方法

这个 拆分器() 方法 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
喜欢就支持一下吧
点赞7 分享