当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java ArrayList spliterator()用法及代码示例


ArrayList的spliterator()方法返回的元素分隔符与ArrayList相同,但创建的分隔符为late-binding和fail-fast。 late-binding拆分器绑定到元素源。这意味着Arraylist在第一次遍历,第一次拆分或第一次查询估计大小时,而不是在创建Spliterator时。它可以与Java 8中的Streams一起使用。此外,它还可以单独和批量遍历元素。分隔符是遍历元素的更好方法,因为它提供了对元素的更多控制。

Spliterator = Splitting + Iterator
  • 它使用tryAdvance()方法在多个线程中分别迭代元素以支持并行处理,
  • forEachRemaining()在单个线程中顺序迭代元素的方法,
  • trySplit()将自身分为Sub-Spliterators的方法以支持并行处理。

分离器支持数据的顺序和并行处理。

如果您观察以下程序输出的输出,则会发现Spliterator.forEachRemaining()方法的用法方式与ArrayList.foreach()相同,但性能更高。


用法:

public Spliterator<E> spliterator()

返回值:此方法在ArrayList中的元素上返回一个Spliterator。

以下示例程序旨在说明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()



相关用法


注:本文由纯净天空筛选整理自AmanSingh2210大神的英文原创作品 ArrayList spliterator() method in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。