當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。