Java中的LinkedList spliterator()方法
LinkedList 的 spliterator() 方法返回一个延迟绑定且故障快速的 Spliterator ,其元素与LinkedList相同。延迟绑定的Spliterator在第一次遍历、第一次拆分或第一次查询估计大小时绑定到元素源(即LinkedList),而不是在创建Spliterator的时间。它可以与Java 8中的Streams一起使用。同时,它也可以单独和批量遍历元素。Spliterator是遍历元素的更好方式,因为它提供了对元素更多的控制。
语法:
public Spliterator<E> spliterator()
返回值: 此方法返回LinkedList中元素的Spliterator。下面的程序说明了LinkedList的spliterator()方法:
示例1: 演示包含对象列表的LinkedList上的spliterator()方法。
// Java程序演示LinkedList的spliterator ()
//方法
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// 创建LinkedList,并将其设置为
// 包含数字列表
LinkedList<Shape> shapes = new LinkedList<Shape>();
//将不同的形状添加到LinkedList中
shapes.add(new Shape("Circle", 234));
shapes.add(new Shape("Square", 225));
shapes.add(new Shape("Cone", 543));
shapes.add(new Shape("Rectangle", 342));
// 使用spliterator()方法创建LinkedList的Spliterator
Spliterator<Shape> splitter = shapes.spliterator();
// 打印Spliterator的结果
System.out.println("形状列表:");
// Spliterator的forEachRemaining方法
spliter.forEachRemaining((Value) -> printDetails(Value));
}
// 打印细节
public static void printDetails(Shape s)
{
System.out.println("************************");
System.out.println("形状名称:" + s.shapename);
System.out.println("形状面积:" + s.area);
}
}
// 创建一个形状类
class Shape {
// 形状类有两个属性
String shapename;
int area;
public Shape(String shapename, int area)
{
super();
this.shapename = shapename;
this.area = area;
}
}
输出:
形状列表:
************************
形状名称:Circle
形状面积:234
************************
形状名称:Square
形状面积:225
************************
形状名称:Cone
形状面积:543
************************
形状名称:Rectangle
形状面积:342
示例2: 演示包含电影名称列表的LinkedList上的spliterator()方法。
//定义Java程序演示LinkedList的spliterator()方法
//
import java.util.*;
public class GFG {
public static void main(String[] args)
{
// 创建一个LinkedList,其中包含一系列电影名称,实际上是字符串值
LinkedList<String> NameOfMovies = new LinkedList<String>();
// 向列表中添加字符串,每个字符串代表城市名称
NameOfMovies.add("Delhi 6");
NameOfMovies.add("3 Idiots");
NameOfMovies.add("Stree");
NameOfMovies.add("Airlift");
// 使用Spliterator()方法
Spliterator<String> names = NameOfMovies.spliterator();
// 从Spliterator中打印结果
System.out.println("电影列表:");
// Spliterator的forEachRemaining方法
names.forEachRemaining((n) -> System.out.println("电影名称:" + n));
}
}
输出:
电影列表:
电影名称:Delhi 6
电影名称:3 Idiots
电影名称:Stree
电影名称:Airlift
参考文献: https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html#spliterator–
极客教程