
spring.turbo.util.collection.StreamFactories Maven / Gradle / Ivy
package spring.turbo.util.collection;
import org.springframework.lang.Nullable;
import spring.turbo.util.Asserts;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Spliterator;
import java.util.Spliterators;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
/**
* {@link Stream} 创建工具
*
* @author 应卓
* @see SetFactories
* @see ListFactories
* @since 1.0.13
*/
public final class StreamFactories {
/**
* 私有构造方法
*/
private StreamFactories() {
super();
}
@SafeVarargs
public static Stream newStream(T... elements) {
Asserts.notNull(elements);
Asserts.noNullElements(elements);
return Stream.of(elements);
}
@SafeVarargs
public static Stream nullSafeNewStream(@Nullable T... elements) {
return ListFactories.nullSafeNewArrayList(elements).stream();
}
// -----------------------------------------------------------------------------------------------------------------
public static Stream newStream(@Nullable Iterator iterator) {
if (iterator == null) {
return Stream.empty();
}
final Spliterator spliterator = Spliterators.spliteratorUnknownSize(iterator, 0);
return StreamSupport.stream(spliterator, false);
}
public static Stream newStream(@Nullable Iterator iterator, boolean parallel) {
if (iterator == null) {
return Stream.empty();
}
final Spliterator spliterator = Spliterators.spliteratorUnknownSize(iterator, 0);
return StreamSupport.stream(spliterator, parallel);
}
// -----------------------------------------------------------------------------------------------------------------
public static Stream newSteam(@Nullable Enumeration enumeration) {
if (enumeration == null) {
return Stream.empty();
}
final Spliterator spliterator = Spliterators.spliteratorUnknownSize(new EnumerationIterator<>(enumeration),
0);
return StreamSupport.stream(spliterator, false);
}
public static Stream newSteam(@Nullable Enumeration enumeration, boolean parallel) {
if (enumeration == null) {
return Stream.empty();
}
final Spliterator spliterator = Spliterators.spliteratorUnknownSize(new EnumerationIterator<>(enumeration),
0);
return StreamSupport.stream(spliterator, parallel);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy