Class IteratorValidator

java.lang.Object
org.miaixz.bus.core.center.iterator.IteratorValidator
Direct Known Subclasses:
IteratorKit

public class IteratorValidator extends Object
Iterator检查工具类,提供字对象的blank和empty等检查
  • empty定义:null or 空字对象:""
  • blank定义:null or 空字对象:"" or 空格、全角空格、制表符、换行符,等不可见字符
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • IteratorValidator

      public IteratorValidator()
  • Method Details

    • isEmpty

      public static boolean isEmpty(Iterable<?> iterable)
      Iterable是否为空
      Parameters:
      iterable - Iterable对象
      Returns:
      是否为空
    • isEmpty

      public static boolean isEmpty(Iterator<?> iterator)
      Iterator是否为空
      Parameters:
      iterator - Iterator对象
      Returns:
      是否为空
    • isNotEmpty

      public static boolean isNotEmpty(Iterable<?> iterable)
      Iterable是否为空
      Parameters:
      iterable - Iterable对象
      Returns:
      是否为空
    • isNotEmpty

      public static boolean isNotEmpty(Iterator<?> iterator)
      Iterator是否为空
      Parameters:
      iterator - Iterator对象
      Returns:
      是否为空
    • hasNull

      public static boolean hasNull(Iterator<?> iter)
      是否包含null元素
      • Iterator为null,返回true
      • Iterator为空集合,即元素个数为0,返回false
      • Iterator中元素为"",返回false
      Parameters:
      iter - 被检查的Iterator对象,如果为null 返回true
      Returns:
      是否包含null元素
    • isAllNull

      public static boolean isAllNull(Iterable<?> iter)
      是否全部元素为null
      Parameters:
      iter - iterator 被检查的Iterable对象,如果为null 返回true
      Returns:
      是否全部元素为null
    • isAllNull

      public static boolean isAllNull(Iterator<?> iter)
      是否全部元素为null
      Parameters:
      iter - iterator 被检查的Iterator对象,如果为null 返回true
      Returns:
      是否全部元素为null
    • hasBlank

      public static boolean hasBlank(Iterable<? extends CharSequence> args)
      指定字符串集合中,是否包含空字符串。
      Parameters:
      args - 字符串列表
      Returns:
      批量判断字符串是否全部为空白
    • isAllBlank

      public static boolean isAllBlank(Iterable<? extends CharSequence> args)
      Parameters:
      args - 字符串列表
      Returns:
      批量判断字符串是否全部为空白
    • isSub

      public static boolean isSub(Iterable<?> subIter, Iterable<?> iter)
      判断subIter是否为iter的子集合,不考虑顺序,只考虑元素数量。
      • 如果两个集合为同一集合或,则返回true
      • 如果两个集合元素都相同,则返回true(无论顺序相同与否)
      Parameters:
      subIter - 第一个Iterable对象,即子集合。
      iter - 第二个Iterable对象,可以为任何实现了Iterable接口的集合。
      Returns:
      如果subIter是iter的子集合,则返回true;否则返回false。
    • isEqualList

      public static boolean isEqualList(Iterable<?> iterable1, Iterable<?> iterable2)
      判断两个Iterable中的元素与其顺序是否相同 当满足下列情况时返回true 此方法来自Apache-Commons-Collections4。
      Parameters:
      iterable1 - 列表1
      iterable2 - 列表2
      Returns:
      是否相同
    • equals

      public static boolean equals(Iterable<?> iterable1, Iterable<?> iterable2, boolean ignoreOrder)
      判断两个Iterable中的元素是否相同,可选是否判断顺序 当满足下列情况时返回true
      Parameters:
      iterable1 - 集合1
      iterable2 - 集合2
      ignoreOrder - 是否忽略顺序
      Returns:
      是否相同
    • get

      public static <E> E get(Iterator<E> iterator, int index) throws IndexOutOfBoundsException
      遍历Iterator,获取指定index位置的元素
      Type Parameters:
      E - 元素类型
      Parameters:
      iterator - Iterator
      index - 位置
      Returns:
      元素,找不到元素返回null
      Throws:
      IndexOutOfBoundsException - index < 0时报错
    • getFirst

      public static <T> T getFirst(Iterator<T> iterator)
      获取集合的第一个元素
      Type Parameters:
      T - 集合元素类型
      Parameters:
      iterator - Iterator
      Returns:
      第一个元素
    • getFirst

      public static <T> T getFirst(Iterator<T> iterator, Predicate<T> predicate)
      返回Iterator中第一个匹配规则的值
      Type Parameters:
      T - 数组元素类型
      Parameters:
      iterator - Iterator
      predicate - 匹配接口,实现此接口自定义匹配规则
      Returns:
      匹配元素,如果不存在匹配元素或Iterator为空,返回 null
    • getFirstNoneNull

      public static <T> T getFirstNoneNull(Iterator<T> iterator)
      获取集合的第一个非空元素
      Type Parameters:
      T - 集合元素类型
      Parameters:
      iterator - Iterator
      Returns:
      第一个非空元素,null表示未找到
    • countMap

      public static <T> Map<T,Integer> countMap(Iterator<T> iter)
      根据集合返回一个元素计数的 Map 所谓元素计数就是假如这个集合中某个元素出现了n次,那将这个元素做为key,n做为value 例如:[a,b,c,c,c] 得到: a: 1 b: 1 c: 3
      Type Parameters:
      T - 集合元素类型
      Parameters:
      iter - Iterator,如果为null返回一个空的Map
      Returns:
      Map