Constructor and Description |
---|
IterUtil() |
Modifier and Type | Method and Description |
---|---|
static <E> Iterable<E> |
asIterable(Iterator<E> iter)
|
static <E> Iterator<E> |
asIterator(Enumeration<E> e)
Enumeration转换为Iterator
Adapt the specified
Enumeration to the Iterator interface |
static void |
clear(Iterator<?> iterator)
清空指定
Iterator ,此方法遍历后调用Iterator.remove() 移除每个元素 |
static <T> Map<T,Integer> |
countMap(Iterator<T> iter)
|
static <T> List<T> |
edit(Iterable<T> iter,
Editor<T> editor)
编辑,此方法产生一个新
ArrayList 编辑过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃 2、修改元素对象,返回集合中为修改后的对象 |
static <T> Iterator<T> |
empty()
返回一个空Iterator
|
static <K,V> Map<K,V> |
fieldValueAsMap(Iterator<?> iter,
String fieldNameForKey,
String fieldNameForValue)
两个字段值组成新的Map
|
static <V> List<Object> |
fieldValueList(Iterable<V> iterable,
String fieldName)
获取指定Bean列表中某个字段,生成新的列表
|
static <V> List<Object> |
fieldValueList(Iterator<V> iter,
String fieldName)
获取指定Bean列表中某个字段,生成新的列表
|
static <K,V> Map<K,V> |
fieldValueMap(Iterator<V> iter,
String fieldName)
字段值与列表值对应的Map,常用于元素对象中有唯一ID时需要按照这个ID查找对象的情况
例如:车牌号 =》车 |
static <E> Iterator<E> |
filter(Iterator<E> iter,
Filter<E> filter)
过滤集合,此方法在原集合上直接修改
通过实现Filter接口,完成元素的过滤,这个Filter实现可以实现以下功能: 1、过滤出需要的对象, Filter.accept(Object) 方法返回false的对象将被使用Iterator.remove() 方法移除
|
static <T extends Iterable<E>,E> |
filter(T iter,
Filter<E> filter)
过滤集合,此方法在原集合上直接修改
通过实现Filter接口,完成元素的过滤,这个Filter实现可以实现以下功能: 1、过滤出需要的对象, Filter.accept(Object) 方法返回false的对象将被使用Iterator.remove() 方法移除
|
static <E> FilterIter<E> |
filtered(Iterator<? extends E> iterator,
Filter<? super E> filter)
获取一个新的
FilterIter ,用于过滤指定元素 |
static <E> List<E> |
filterToList(Iterator<E> iter,
Filter<E> filter)
过滤
Iterator 并将过滤后满足条件的元素添加到List中 |
static <T> T |
firstMatch(Iterator<T> iterator,
Matcher<T> matcher)
返回
Iterator 中第一个匹配规则的值 |
static <E> void |
forEach(Iterator<E> iterator,
Consumer<? super E> consumer)
|
static <E> E |
get(Iterator<E> iterator,
int index)
遍历
Iterator ,获取指定index位置的元素 |
static Class<?> |
getElementType(Iterable<?> iterable)
获得
Iterable 对象的元素类型(通过第一个非空元素判断)注意,此方法至少会调用多次next方法 |
static Class<?> |
getElementType(Iterator<?> iterator)
获得
Iterator 对象的元素类型(通过第一个非空元素判断)注意,此方法至少会调用多次next方法 |
static <T> T |
getFirst(Iterable<T> iterable)
获取集合的第一个元素,如果集合为空(null或者空集合),返回
null |
static <T> T |
getFirst(Iterator<T> iterator)
获取集合的第一个元素
|
static <T> T |
getFirstNoneNull(Iterable<T> iterable)
获取集合的第一个非空元素
|
static <T> T |
getFirstNoneNull(Iterator<T> iterator)
获取集合的第一个非空元素
|
static <T> Iterator<T> |
getIter(Iterable<T> iterable)
获取
Iterator |
static Iterator<?> |
getIter(Object obj)
从给定的对象中获取可能存在的
Iterator ,规则如下:
null - null
Iterator - 直接返回
Enumeration - EnumerationIter
Collection - 调用Collection.iterator()
Map - Entry的Iterator
Dictionary - values (elements) enumeration returned as iterator
array - ArrayIter
NodeList - NodeListIter
Node - 子节点
object with iterator() public method,通过反射访问
object - 单对象的ArrayIter
|
static boolean |
hasNull(Iterable<?> iter)
是否包含
null 元素 |
static boolean |
hasNull(Iterator<?> iter)
是否包含
null 元素 |
static boolean |
isAllNull(Iterable<?> iter)
是否全部元素为null
|
static boolean |
isAllNull(Iterator<?> iter)
是否全部元素为null
|
static boolean |
isEmpty(Iterable<?> iterable)
Iterable是否为空
|
static boolean |
isEmpty(Iterator<?> Iterator)
Iterator是否为空
|
static boolean |
isEqualList(Iterable<?> list1,
Iterable<?> list2)
判断两个
Iterable 是否元素和顺序相同,返回true 的条件是:
两个Iterable 必须长度相同
两个Iterable 元素相同index的对象必须equals,满足Objects.equals(Object, Object)
此方法来自Apache-Commons-Collections4。 |
static boolean |
isNotEmpty(Iterable<?> iterable)
Iterable是否为空
|
static boolean |
isNotEmpty(Iterator<?> Iterator)
Iterator是否为空
|
static <T> String |
join(Iterator<T> iterator,
CharSequence conjunction)
|
static <T> String |
join(Iterator<T> iterator,
CharSequence conjunction,
Function<T,? extends CharSequence> func)
|
static <T> String |
join(Iterator<T> iterator,
CharSequence conjunction,
String prefix,
String suffix)
|
static int |
size(Iterable<?> iterable)
返回 Iterable 对象的元素数量
|
static int |
size(Iterator<?> iterator)
返回 Iterator 对象的元素数量
|
static <E> List<E> |
toList(Iterable<E> iter)
Iterator转List
不判断,直接生成新的List |
static <E> List<E> |
toList(Iterator<E> iter)
Iterator转List
不判断,直接生成新的List |
static <T,K,V> Map<K,List<V>> |
toListMap(Iterable<T> iterable,
Function<T,K> keyMapper,
Function<T,V> valueMapper)
将列表转成值为List的HashMap
|
static <K,V> Map<K,List<V>> |
toListMap(Iterable<V> iterable,
Function<V,K> keyMapper)
将列表转成值为List的HashMap
|
static <T,K,V> Map<K,List<V>> |
toListMap(Map<K,List<V>> resultMap,
Iterable<T> iterable,
Function<T,K> keyMapper,
Function<T,V> valueMapper)
将列表转成值为List的HashMap
|
static <K,V> Map<K,V> |
toMap(Iterable<K> keys,
Iterable<V> values)
将键列表和值列表转换为Map
以键为准,值与键位置需对应。 |
static <K,V> Map<K,V> |
toMap(Iterable<K> keys,
Iterable<V> values,
boolean isOrder)
将键列表和值列表转换为Map
以键为准,值与键位置需对应。 |
static <K,V> HashMap<K,V> |
toMap(Iterable<Map.Entry<K,V>> entryIter)
将Entry集合转换为HashMap
|
static <T,K,V> Map<K,V> |
toMap(Iterable<T> iterable,
Function<T,K> keyMapper,
Function<T,V> valueMapper)
将列表转成HashMap
|
static <K,V> Map<K,V> |
toMap(Iterable<V> iterable,
Function<V,K> keyMapper)
将列表转成HashMap
|
static <K,V,E> Map<K,V> |
toMap(Iterator<E> iterator,
Map<K,V> map,
Func1<E,K> keyFunc,
Func1<E,V> valueFunc)
集合转换为Map,转换规则为:
按照keyFunc函数规则根据元素对象生成Key,按照valueFunc函数规则根据元素对象生成value组成新的Map |
static <K,V> Map<K,V> |
toMap(Iterator<K> keys,
Iterator<V> values)
将键列表和值列表转换为Map
以键为准,值与键位置需对应。 |
static <K,V> Map<K,V> |
toMap(Iterator<K> keys,
Iterator<V> values,
boolean isOrder)
将键列表和值列表转换为Map
以键为准,值与键位置需对应。 |
static <K,V> Map<K,V> |
toMap(Iterator<V> iterator,
Map<K,V> map,
Func1<V,K> keyFunc)
Iterator转换为Map,转换规则为:
按照keyFunc函数规则根据元素对象生成Key,元素作为值 |
static <T,K,V> Map<K,V> |
toMap(Map<K,V> resultMap,
Iterable<T> iterable,
Function<T,K> keyMapper,
Function<T,V> valueMapper)
将列表转成Map
|
static <E> String |
toStr(Iterator<E> iterator)
拼接
Iterator 为字符串 |
static <E> String |
toStr(Iterator<E> iterator,
Function<? super E,String> transFunc)
拼接
Iterator 为字符串 |
static <E> String |
toStr(Iterator<E> iterator,
Function<? super E,String> transFunc,
String delimiter,
String prefix,
String suffix)
拼接
Iterator 为字符串 |
static <F,T> Iterator<T> |
trans(Iterator<F> iterator,
Function<? super F,? extends T> function)
|
public static boolean isEmpty(Iterable<?> iterable)
iterable
- Iterable对象public static boolean isEmpty(Iterator<?> Iterator)
Iterator
- Iterator对象public static boolean isNotEmpty(Iterable<?> iterable)
iterable
- Iterable对象public static boolean isNotEmpty(Iterator<?> Iterator)
Iterator
- Iterator对象public static boolean hasNull(Iterable<?> iter)
null
元素iter
- 被检查的Iterable
对象,如果为null
返回truenull
元素public static boolean hasNull(Iterator<?> iter)
null
元素iter
- 被检查的Iterator
对象,如果为null
返回truenull
元素public static boolean isAllNull(Iterable<?> iter)
iter
- iter 被检查的Iterable
对象,如果为null
返回truepublic static boolean isAllNull(Iterator<?> iter)
iter
- iter 被检查的Iterator
对象,如果为null
返回truepublic static <K,V> Map<K,V> fieldValueMap(Iterator<V> iter, String fieldName)
K
- 字段名对应值得类型,不确定请使用ObjectV
- 对象类型iter
- 对象列表fieldName
- 字段名(会通过反射获取其值)public static <K,V> Map<K,V> fieldValueAsMap(Iterator<?> iter, String fieldNameForKey, String fieldNameForValue)
K
- 字段名对应值得类型,不确定请使用ObjectV
- 值类型,不确定使用Objectiter
- 对象列表fieldNameForKey
- 做为键的字段名(会通过反射获取其值)fieldNameForValue
- 做为值的字段名(会通过反射获取其值)public static <V> List<Object> fieldValueList(Iterable<V> iterable, String fieldName)
V
- 对象类型iterable
- 对象列表fieldName
- 字段名(会通过反射获取其值)public static <V> List<Object> fieldValueList(Iterator<V> iter, String fieldName)
V
- 对象类型iter
- 对象列表fieldName
- 字段名(会通过反射获取其值)public static <T> String join(Iterator<T> iterator, CharSequence conjunction)
T
- 集合元素类型iterator
- 集合conjunction
- 分隔符public static <T> String join(Iterator<T> iterator, CharSequence conjunction, String prefix, String suffix)
T
- 集合元素类型iterator
- 集合conjunction
- 分隔符prefix
- 每个元素添加的前缀,null表示不添加suffix
- 每个元素添加的后缀,null表示不添加public static <T> String join(Iterator<T> iterator, CharSequence conjunction, Function<T,? extends CharSequence> func)
T
- 集合元素类型iterator
- 集合conjunction
- 分隔符func
- 集合元素转换器,将元素转换为字符串public static <K,V> HashMap<K,V> toMap(Iterable<Map.Entry<K,V>> entryIter)
K
- 键类型V
- 值类型entryIter
- entry集合public static <K,V> Map<K,V> toMap(Iterable<K> keys, Iterable<V> values)
K
- 键类型V
- 值类型keys
- 键列表values
- 值列表public static <K,V> Map<K,V> toMap(Iterable<K> keys, Iterable<V> values, boolean isOrder)
K
- 键类型V
- 值类型keys
- 键列表values
- 值列表isOrder
- 是否有序public static <K,V> Map<K,V> toMap(Iterator<K> keys, Iterator<V> values)
K
- 键类型V
- 值类型keys
- 键列表values
- 值列表public static <K,V> Map<K,V> toMap(Iterator<K> keys, Iterator<V> values, boolean isOrder)
K
- 键类型V
- 值类型keys
- 键列表values
- 值列表isOrder
- 是否有序public static <K,V> Map<K,List<V>> toListMap(Iterable<V> iterable, Function<V,K> keyMapper)
K
- 键类型V
- 值类型iterable
- 值列表keyMapper
- Map的键映射public static <T,K,V> Map<K,List<V>> toListMap(Iterable<T> iterable, Function<T,K> keyMapper, Function<T,V> valueMapper)
T
- 列表值类型K
- 键类型V
- 值类型iterable
- 值列表keyMapper
- Map的键映射valueMapper
- Map中List的值映射public static <T,K,V> Map<K,List<V>> toListMap(Map<K,List<V>> resultMap, Iterable<T> iterable, Function<T,K> keyMapper, Function<T,V> valueMapper)
T
- 列表值类型K
- 键类型V
- 值类型resultMap
- 结果Map,可自定义结果Map类型iterable
- 值列表keyMapper
- Map的键映射valueMapper
- Map中List的值映射public static <K,V> Map<K,V> toMap(Iterable<V> iterable, Function<V,K> keyMapper)
K
- 键类型V
- 值类型iterable
- 值列表keyMapper
- Map的键映射public static <T,K,V> Map<K,V> toMap(Iterable<T> iterable, Function<T,K> keyMapper, Function<T,V> valueMapper)
T
- 列表值类型K
- 键类型V
- 值类型iterable
- 值列表keyMapper
- Map的键映射valueMapper
- Map的值映射public static <T,K,V> Map<K,V> toMap(Map<K,V> resultMap, Iterable<T> iterable, Function<T,K> keyMapper, Function<T,V> valueMapper)
T
- 列表值类型K
- 键类型V
- 值类型resultMap
- 结果Map,通过传入map对象决定结果的Map类型iterable
- 值列表keyMapper
- Map的键映射valueMapper
- Map的值映射public static <E> List<E> toList(Iterable<E> iter)
E
- 元素类型iter
- Iterator
public static <E> List<E> toList(Iterator<E> iter)
E
- 元素类型iter
- Iterator
public static <E> Iterator<E> asIterator(Enumeration<E> e)
Adapt the specified Enumeration
to the Iterator
interface
E
- 集合元素类型e
- Enumeration
Iterator
public static <E> E get(Iterator<E> iterator, int index) throws IndexOutOfBoundsException
Iterator
,获取指定index位置的元素E
- 元素类型iterator
- Iterator
index
- 位置null
IndexOutOfBoundsException
public static <T> T getFirst(Iterable<T> iterable)
null
T
- 集合元素类型iterable
- Iterable
null
public static <T> T getFirstNoneNull(Iterable<T> iterable)
T
- 集合元素类型iterable
- Iterable
public static <T> T getFirst(Iterator<T> iterator)
T
- 集合元素类型iterator
- Iterator
public static <T> T getFirstNoneNull(Iterator<T> iterator)
T
- 集合元素类型iterator
- Iterator
public static <T> T firstMatch(Iterator<T> iterator, Matcher<T> matcher)
Iterator
中第一个匹配规则的值public static Class<?> getElementType(Iterable<?> iterable)
Iterable
对象的元素类型(通过第一个非空元素判断)iterable
- Iterable
public static Class<?> getElementType(Iterator<?> iterator)
Iterator
对象的元素类型(通过第一个非空元素判断)iterator
- Iterator
,为 null
返回null
null
时,返回null
public static <T> List<T> edit(Iterable<T> iter, Editor<T> editor)
ArrayList
1、过滤出需要的对象,如果返回null表示这个元素对象抛弃 2、修改元素对象,返回集合中为修改后的对象
T
- 集合元素类型iter
- 集合editor
- 编辑器接口, null
表示不编辑public static <T extends Iterable<E>,E> T filter(T iter, Filter<E> filter)
1、过滤出需要的对象,Filter.accept(Object)
方法返回false的对象将被使用Iterator.remove()
方法移除
T
- 集合类型E
- 集合元素类型iter
- 集合filter
- 过滤器接口public static <E> Iterator<E> filter(Iterator<E> iter, Filter<E> filter)
1、过滤出需要的对象,Filter.accept(Object)
方法返回false的对象将被使用Iterator.remove()
方法移除
E
- 集合元素类型iter
- 集合filter
- 过滤器接口,删除Filter.accept(Object)
为false
的元素public static <E> List<E> filterToList(Iterator<E> iter, Filter<E> filter)
Iterator
并将过滤后满足条件的元素添加到List中E
- 元素类型iter
- Iterator
filter
- 过滤器,保留Filter.accept(Object)
为true
的元素public static <E> FilterIter<E> filtered(Iterator<? extends E> iterator, Filter<? super E> filter)
FilterIter
,用于过滤指定元素E
- 元素类型iterator
- 被包装的 Iterator
filter
- 过滤断言,当Filter.accept(Object)
为true
时保留元素,false
抛弃元素FilterIter
public static <K,V> Map<K,V> toMap(Iterator<V> iterator, Map<K,V> map, Func1<V,K> keyFunc)
K
- Map键类型V
- Map值类型iterator
- 数据列表map
- Map对象,转换后的键值对加入此Map,通过传入此对象自定义Map类型keyFunc
- 生成key的函数public static <K,V,E> Map<K,V> toMap(Iterator<E> iterator, Map<K,V> map, Func1<E,K> keyFunc, Func1<E,V> valueFunc)
K
- Map键类型V
- Map值类型E
- 元素类型iterator
- 数据列表map
- Map对象,转换后的键值对加入此Map,通过传入此对象自定义Map类型keyFunc
- 生成key的函数valueFunc
- 生成值的策略函数public static <T> Iterator<T> empty()
T
- 元素类型Collections.emptyIterator()
public static <F,T> Iterator<T> trans(Iterator<F> iterator, Function<? super F,? extends T> function)
public static int size(Iterable<?> iterable)
iterable
- Iterable对象public static int size(Iterator<?> iterator)
iterator
- Iterator对象public static boolean isEqualList(Iterable<?> list1, Iterable<?> list2)
Iterable
是否元素和顺序相同,返回true
的条件是:
Iterable
必须长度相同Iterable
元素相同index的对象必须equals,满足Objects.equals(Object, Object)
list1
- 列表1list2
- 列表2public static void clear(Iterator<?> iterator)
Iterator
,此方法遍历后调用Iterator.remove()
移除每个元素iterator
- Iterator
public static <E> void forEach(Iterator<E> iterator, Consumer<? super E> consumer)
E
- 元素类型iterator
- Iterator
consumer
- 节点消费,null
表示不处理public static <E> String toStr(Iterator<E> iterator)
Iterator
为字符串E
- 元素类型iterator
- Iterator
public static <E> String toStr(Iterator<E> iterator, Function<? super E,String> transFunc)
Iterator
为字符串E
- 元素类型iterator
- Iterator
transFunc
- 元素转字符串函数public static <E> String toStr(Iterator<E> iterator, Function<? super E,String> transFunc, String delimiter, String prefix, String suffix)
Iterator
为字符串E
- 元素类型iterator
- Iterator
transFunc
- 元素转字符串函数delimiter
- 分隔符prefix
- 前缀suffix
- 后缀public static Iterator<?> getIter(Object obj)
Iterator
,规则如下:
EnumerationIter
Collection.iterator()
Iterator
ArrayIter
NodeListIter
ArrayIter
Copyright © 2024. All rights reserved.