Class FluentIterable<E>
java.lang.Object
cloud.opencode.base.collections.FluentIterable<E>
- Type Parameters:
E- element type | 元素类型
- All Implemented Interfaces:
Iterable<E>
FluentIterable - Fluent API for Iterable Operations
FluentIterable - 可迭代操作的流式 API
A fluent wrapper around Iterable that provides chainable operations for filtering, transforming, and collecting elements.
围绕 Iterable 的流式包装器,提供可链式操作用于过滤、转换和收集元素。
Features | 主要功能:
- Fluent chaining - 流式链接
- Lazy evaluation - 惰性求值
- Filter and transform - 过滤和转换
- Collection conversion - 集合转换
- Terminal operations - 终端操作
Usage Examples | 使用示例:
// Create from iterable - 从可迭代对象创建
FluentIterable<String> fluent = FluentIterable.from(strings);
// Chain operations - 链式操作
List<Integer> lengths = FluentIterable.from(strings)
.filter(s -> s.length() > 3)
.transform(String::length)
.toList();
// Get first element - 获取第一个元素
Optional<String> first = FluentIterable.from(strings)
.filter(s -> s.startsWith("A"))
.first();
// Limit and skip - 限制和跳过
List<String> page = FluentIterable.from(strings)
.skip(10)
.limit(5)
.toList();
Performance | 性能特性:
- Operations are lazy - 操作是惰性的
- Single iteration on terminal - 终端操作单次迭代
- Memory efficient for large collections - 对大集合内存高效
Security | 安全性:
- Thread-safe: No - 线程安全: 否
- Null-safe: Yes - 空值安全: 是
- Since:
- JDK 25, opencode-base-collections V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanCheck if all elements match.booleanCheck if any element matches.final FluentIterable<E> Append varargs elements.Append elements.<R,A> R Collect using a collector.static <E> FluentIterable<E> Concatenate multiple iterables.static <E> FluentIterable<E> Concatenate iterables.booleanCheck if contains element.<C extends Collection<? super E>>
CcopyInto(C collection) Copy elements into collection.cycle()Cycle elements infinitely.distinct()Remove duplicate elements.static <E> FluentIterable<E> empty()Create an empty FluentIterable.<T> FluentIterable<T> Filter elements by type.Filter elements.first()Return the first element.firstMatch(Predicate<? super E> predicate) Find the first matching element.Return the first element, or default.<T> FluentIterable<T> Flat map elements.static <E> FluentIterable<E> Create a FluentIterable from an Iterable.get(int index) Get element at index.booleanisEmpty()Check if empty.Join to string.last()Return the last element.Return the last element, or default.limit(int maxSize) Limit elements.booleanCheck if no element matches.static <E> FluentIterable<E> of(E... elements) Create a FluentIterable from varargs.intsize()Count elements.skip(int count) Skip elements.stream()Convert to stream.E[]Convert to array.Collect to immutable list.Collect to immutable set.toList()Collect to list.<K,V> Map <K, V> Collect to map.toSet()Collect to set.toSortedList(Comparator<? super E> comparator) Collect to sorted immutable list.toSortedSet(Comparator<? super E> comparator) Collect to sorted immutable set.<T> FluentIterable<T> Transform elements.<T> FluentIterable<T> transformAndConcat(Function<? super E, ? extends Iterable<T>> function) Transform and concatenate elements (alias for flatMap).uniqueIndex(Function<? super E, K> keyFunction) Index elements by unique key.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Iterable
forEach, iterator, spliterator
-
Constructor Details
-
FluentIterable
public FluentIterable()
-
-
Method Details
-
from
Create a FluentIterable from an Iterable. 从 Iterable 创建 FluentIterable。- Type Parameters:
E- element type | 元素类型- Parameters:
iterable- the iterable | 可迭代对象- Returns:
- fluent iterable | 流式可迭代对象
-
of
Create a FluentIterable from varargs. 从可变参数创建 FluentIterable。- Type Parameters:
E- element type | 元素类型- Parameters:
elements- the elements | 元素- Returns:
- fluent iterable | 流式可迭代对象
-
empty
Create an empty FluentIterable. 创建空 FluentIterable。- Type Parameters:
E- element type | 元素类型- Returns:
- empty fluent iterable | 空流式可迭代对象
-
concat
Concatenate multiple iterables. 连接多个可迭代对象。- Type Parameters:
E- element type | 元素类型- Parameters:
iterables- iterables to concatenate | 要连接的可迭代对象- Returns:
- concatenated fluent iterable | 连接的流式可迭代对象
-
concat
Concatenate iterables. 连接可迭代对象。- Type Parameters:
E- element type | 元素类型- Parameters:
iterables- iterables to concatenate | 要连接的可迭代对象- Returns:
- concatenated fluent iterable | 连接的流式可迭代对象
-
filter
Filter elements. 过滤元素。- Parameters:
predicate- the predicate | 谓词- Returns:
- filtered fluent iterable | 过滤后的流式可迭代对象
-
filter
Filter elements by type. 按类型过滤元素。- Type Parameters:
T- target type | 目标类型- Parameters:
type- the type | 类型- Returns:
- filtered fluent iterable | 过滤后的流式可迭代对象
-
transform
Transform elements. 转换元素。- Type Parameters:
T- target type | 目标类型- Parameters:
function- the transform function | 转换函数- Returns:
- transformed fluent iterable | 转换后的流式可迭代对象
-
flatMap
Flat map elements. 平面映射元素。- Type Parameters:
T- target type | 目标类型- Parameters:
function- the function | 函数- Returns:
- flat mapped fluent iterable | 平面映射后的流式可迭代对象
-
transformAndConcat
public <T> FluentIterable<T> transformAndConcat(Function<? super E, ? extends Iterable<T>> function) Transform and concatenate elements (alias for flatMap). 转换并连接元素(flatMap的别名)。- Type Parameters:
T- target type | 目标类型- Parameters:
function- the function | 函数- Returns:
- transformed and concatenated fluent iterable | 转换并连接后的流式可迭代对象
-
limit
Limit elements. 限制元素数量。- Parameters:
maxSize- maximum size | 最大数量- Returns:
- limited fluent iterable | 限制后的流式可迭代对象
-
skip
Skip elements. 跳过元素。- Parameters:
count- number to skip | 要跳过的数量- Returns:
- skipped fluent iterable | 跳过后的流式可迭代对象
-
cycle
Cycle elements infinitely. 无限循环元素。- Returns:
- cycling fluent iterable | 循环的流式可迭代对象
-
append
Append elements. 追加元素。- Parameters:
other- elements to append | 要追加的元素- Returns:
- appended fluent iterable | 追加后的流式可迭代对象
-
append
Append varargs elements. 追加可变参数元素。- Parameters:
elements- elements to append | 要追加的元素- Returns:
- appended fluent iterable | 追加后的流式可迭代对象
-
distinct
Remove duplicate elements. 移除重复元素。- Returns:
- distinct fluent iterable | 去重后的流式可迭代对象
-
first
-
firstOr
-
last
-
lastOr
-
get
-
anyMatch
-
allMatch
-
noneMatch
-
firstMatch
-
contains
Check if contains element. 检查是否包含元素。- Parameters:
element- the element | 元素- Returns:
- true if contains | 如果包含则返回 true
-
size
public int size()Count elements. 计算元素数量。- Returns:
- count | 数量
-
isEmpty
public boolean isEmpty()Check if empty. 检查是否为空。- Returns:
- true if empty | 如果为空则返回 true
-
toList
-
toImmutableList
Collect to immutable list. 收集为不可变列表。- Returns:
- immutable list | 不可变列表
-
toSet
-
toImmutableSet
Collect to immutable set. 收集为不可变集合。- Returns:
- immutable set | 不可变集合
-
toSortedList
Collect to sorted immutable list. 收集为排序的不可变列表。- Parameters:
comparator- the comparator | 比较器- Returns:
- sorted immutable list | 排序的不可变列表
-
toSortedSet
Collect to sorted immutable set. 收集为排序的不可变集合。- Parameters:
comparator- the comparator | 比较器- Returns:
- sorted immutable set | 排序的不可变集合
-
toMap
-
uniqueIndex
-
toArray
-
copyInto
Copy elements into collection. 将元素复制到集合中。- Type Parameters:
C- collection type | 集合类型- Parameters:
collection- the target collection | 目标集合- Returns:
- the collection | 集合
-
collect
-
stream
-
join
-