@Contract(pure = true)
  public static @NotNull <T> Iterator<T> iterate(T @NotNull [] array) {
    return array.length == 0 ? Collections.emptyIterator() : Arrays.asList(array).iterator();
  }
@Contract(pure = true)
  public static @NotNull <T> Iterator<T> iterate(T @NotNull [] array)