鸿蒙OS开发文档 第49页

鸿蒙OS AbstractMap.SimpleImmutableEntry

AbstractMap.SimpleImmutableEntry java.lang.Object |—java.util.AbstractMap.SimpleImmutableEntry<K,V& public static class AbstractMap.SimpleImmutableEntry<K,V> extends Object implements Map.Entry<K,V>, Serializable 维护不可变键和值的条目。 此类不支持方法 setValue。 此类在返回键值映射的线程安全快照的方法中可能很方便。 构造函数摘要 构造函数 描述 SimpleImmutableEntry(Map.Entry<? extends K,? extends V> entry) 创建一个表示与指定条目相同的映射的条目。 SimpleImmutableEntry(K key, V value) 创建一个表示从指定键到指定值的映射的条目。 方法总结 修饰符和类型 方法 描述 boolean equals(Object o) 比较指定对象与此条目是否相等。 K getKey() 返回与该条目对应的键。 V getValue() 返回与该条目对应的值。 int hashCode() 返回此映射条目的哈希码值。 V setValue(V value) 用指定的值替换与该条目对应的值(可选操作)。 String toString() 返回此映射条目的字符串表示形式。 从接口 java.util.Map.Entry 继承的方法 comparingByKey, comparingByKey, comparingByValue, comparingByValue 从类 java.lang.Object 继承的方法 clone, finalize, getClass, notify, notifyAll, wait, wait, wait 构造函数详细信息 SimpleImmutableEntry public SimpleImmutableEntry(K key, V value) 创建一个表示从指定键到指定值的映射的条目。 参数: 参数名称 参数描述 key 此条目表示的键 value 此条目表示的值 SimpleImmutableEntry public SimpleImmutableEntry(Map.Entry<? extends K,? extends V> entry) 创建一个表示与指定条目相同的映射的条目。 参数: 参数名称 参数描述 entry 要复制的条目 方法详情 getKey public K getKey() 返回与该条目对应的键。 指定者: 接口 Map.EntryK,V 中的 getKey 返回: 此条目对应的键 getValue public V getValue() 返回与该条目对应的值。 指定者: 接口 Map.EntryK,V 中的 getValue 返回: 此条目对应的值 setValue public V setValue(V value) 用指定的值替换与该条目对应的值(可选操作)。 这个实现简单地抛出 UnsupportedOperationException,因为这个类实现了一个不可变的映射条目。 指定者: 接口 Map.EntryK,V 中的 setValue...

鸿蒙OS AbstractMap.SimpleEntry

AbstractMap.SimpleEntry java.lang.Object |—java.util.AbstractMap.SimpleEntry<K,V& public static class AbstractMap.SimpleEntry<K,V> extends Object implements Map.Entry<K,V>, Serializable 维护键和值的条目。 可以使用 setValue 方法更改该值。 此类有助于构建自定义地图实现的过程。 例如,在 Map.entrySet().toArray 方法中返回 SimpleEntry 实例的数组可能很方便。 构造函数摘要 构造函数 描述 SimpleEntry(Map.Entry<? extends K,? extends V> entry) 创建一个表示与指定条目相同的映射的条目。 SimpleEntry(K key, V value) 创建一个表示从指定键到指定值的映射的条目。 方法总结 修饰符和类型 方法 描述 boolean equals(Object o) 比较指定对象与此条目是否相等。 K getKey() 返回与该条目对应的键。 V getValue() 返回与该条目对应的值。 int hashCode() 返回此映射条目的哈希码值。 V setValue(V value) 将与此条目对应的值替换为指定的值。 String toString() 返回此映射条目的字符串表示形式。 从接口 java.util.Map.Entry 继承的方法 comparingByKey, comparingByKey, comparingByValue, comparingByValue 从类 java.lang.Object 继承的方法 clone, finalize, getClass, notify, notifyAll, wait, wait, wait 构造函数详细信息 SimpleEntry public SimpleEntry(K key, V value) 创建一个表示从指定键到指定值的映射的条目。 参数: 参数名称 参数描述 key 此条目表示的键 value 此条目表示的值 SimpleEntry public SimpleEntry(Map.Entry<? extends K,? extends V> entry) 创建一个表示与指定条目相同的映射的条目。 参数: 参数名称 参数描述 entry 要复制的条目 方法详情 getKey public K getKey() 返回与该条目对应的键。 指定者: 接口 Map.EntryK,V 中的 getKey 返回: 此条目对应的键 getValue public V getValue() 返回与该条目对应的值。 指定者: 接口 Map.EntryK,V 中的 getValue 返回: 此条目对应的值 setValue public V setValue(V value) 将与此条目对应的值替换为指定的值。 指定者:...

鸿蒙OS AbstractMap

AbstractMap java.lang.Object |—java.util.AbstractMap<K,V& public abstract class AbstractMap<K,V> extends Object implements Map<K,V> 此类提供 Map 接口的骨架实现,以最大限度地减少实现此接口所需的工作量。 要实现一个不可修改的地图,程序员只需要扩展这个类并为 entrySet 方法提供一个实现,该方法返回地图映射的集合视图。通常,返回的集合将依次在 AbstractSet 之上实现。这个集合不应该支持 add 或 remove 方法,它的迭代器也不应该支持 remove 方法。 要实现一个可修改的映射,程序员必须额外覆盖这个类的 put 方法(否则会抛出 UnsupportedOperationException),并且 entrySet().iterator() 返回的迭代器必须额外实现它的 remove 方法。 根据 Map 接口规范中的建议,程序员通常应提供 void(无参数)和 map 构造函数。 此类中每个非抽象方法的文档都详细描述了它的实现。如果正在实现的映射允许更有效的实现,则可以覆盖这些方法中的每一个。 此类是 Java 集合框架的成员。 嵌套类摘要 修饰符和类型 类 描述 static class AbstractMap.SimpleEntryK,V 维护键和值的条目。 static class AbstractMap.SimpleImmutableEntryK,V 维护不可变键和值的条目。 从接口 java.util.Map 继承的嵌套类/接口 Map.EntryK,V 构造函数摘要 修饰符 构造函数 描述 protected AbstractMap() 唯一的构造函数。 方法总结 修饰符和类型 方法 描述 void clear() 从此映射中删除所有映射(可选操作)。 protected Object clone() 返回此 AbstractMap 实例的浅表副本:键和值本身没有被克隆。 boolean containsKey(Object key) 如果此映射包含指定键的映射,则返回 true。 boolean containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true。 abstract SetMap.EntryK,V entrySet() 返回此映射中包含的映射的 Set 视图。 boolean equals(Object o) 比较指定对象与此映射是否相等。 V get(Object key) 返回指定键映射到的值,如果此映射不包含该键的映射,则返回 null。 int hashCode() 返回此map的哈希码值。 boolean isEmpty() 如果此映射不包含键值映射,则返回 true。 SetK keySet() 返回此映射中包含的键的 Set 视图。 V put(K key, V value) 将指定值与此映射中的指定键关联(可选操作)。 void putAll(Map<? extends K,? extends V> m) 将所有映射从指定映射复制到此映射(可选操作)。 V remove(Object key) 如果存在,则从此映射中删除键的映射(可选操作)。 int size() 返回此映射中键值映射的数量。 String toString() 返回此map的字符串表示形式。 CollectionV values() 返回此映射中包含的值的集合视图。 从接口 java.util.Map 继承的方法 compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll...

鸿蒙OS AbstractList

AbstractList java.lang.Object |—java.util.AbstractCollection<E& |—|—java.util.AbstractList<E& public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> 此类提供 List 接口的骨架实现,以最大限度地减少实现此接口所需的工作,该接口由“随机访问”数据存储(例如数组)支持。对于顺序访问数据(如链表),应优先使用 AbstractSequentialList 而非此类。 要实现一个不可修改的列表,程序员只需要扩展这个类并提供 get(int) 和 List#size() 方法的实现。 要实现一个可修改的列表,程序员必须另外重写 set(int, E) 方法(否则会抛出 UnsupportedOperationException)。如果列表是可变大小的,则程序员必须另外覆盖 add(int, E) 和 remove(int) 方法。 根据 Collection 接口规范中的建议,程序员通常应该提供一个 void(无参数)和集合构造函数。 与其他抽象集合实现不同,程序员不必提供迭代器实现;迭代器和列表迭代器由此类在“随机访问”方法之上实现:get(int)、set(int, E)、add(int, E) 和 remove(int)。 此类中每个非抽象方法的文档都详细描述了它的实现。如果正在实现的集合允许更有效的实现,则可以覆盖这些方法中的每一个。 此类是 Java 集合框架的成员。 字段摘要 修饰符和类型 字段 描述 protected int modCount 此列表在结构上被修改的次数。 构造函数摘要 修饰符 构造函数 描述 protected AbstractList() 唯一的构造函数。 方法总结 修饰符和类型 方法 描述 void add(int index, E element) 在此列表中的指定位置插入指定元素(可选操作)。 boolean add(E e) 将指定元素附加到此列表的末尾(可选操作)。 boolean addAll(int index, Collection<? extends E> c) 将指定集合中的所有元素插入到此列表中的指定位置(可选操作)。 void clear() 从此列表中删除所有元素(可选操作)。 boolean equals(Object o) 比较指定对象与此列表是否相等。 abstract E get(int index) 返回此列表中指定位置的元素。 int hashCode() 返回此列表的哈希码值。 int indexOf(Object o) 返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回 -1。 IteratorE iterator() 以正确的顺序返回此列表中元素的迭代器。 int lastIndexOf(Object o) 返回此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回 -1。 ListIteratorE listIterator() 返回此列表中元素的列表迭代器(以正确的顺序)。 ListIteratorE listIterator(int index) 返回此列表中元素的列表迭代器(以正确的顺序),从列表中的指定位置开始。 E remove(int index) 移除此列表中指定位置的元素(可选操作)。 protected void removeRange(int fromIndex, int toIndex) 从此列表中删除索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。 E set(int index, E element) 将此列表中指定位置的元素替换为指定元素(可选操作)。 ListE subList(int fromIndex, int toIndex) 返回此列表在指定的 fromIndex(包括)和 toIndex(不包括)之间的部分的视图。 从类 java.util.AbstractCollection 继承的方法 addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray, toString 从接口 java.util.Collection 继承的方法 parallelStream, removeIf, stream 从接口...

鸿蒙OS AbstractCollection

AbstractCollection java.lang.Object |—java.util.AbstractCollection<E& public abstract class AbstractCollection<E> extends Object implements Collection<E> 此类提供 Collection 接口的骨架实现,以最大限度地减少实现此接口所需的工作量。 要实现一个不可修改的集合,程序员只需要扩展这个类并提供迭代器和大小方法的实现。 (迭代器方法返回的迭代器必须实现hasNext和next。) 要实现一个可修改的集合,程序员必须另外重写这个类的 add 方法(否则会抛出 UnsupportedOperationException),并且迭代器方法返回的迭代器必须另外实现它的 remove 方法。 根据 Collection 接口规范中的建议,程序员通常应该提供一个 void(无参数)和 Collection 构造函数。 此类中每个非抽象方法的文档都详细描述了它的实现。如果正在实现的集合允许更有效的实现,则可以覆盖这些方法中的每一个。 此类是 Java 集合框架的成员。 构造函数摘要 修饰符 构造函数 描述 protected AbstractCollection() 唯一的构造函数。 方法总结 修饰符和类型 方法 描述 boolean add(E e) 确保此集合包含指定的元素(可选操作)。 boolean addAll(Collection<? extends E> c) 将指定集合中的所有元素添加到此集合(可选操作)。 void clear() 从此集合中移除所有元素(可选操作)。 boolean contains(Object o) 如果此集合包含指定元素,则返回 true。 boolean containsAll(Collection<?> c) 如果此集合包含指定集合中的所有元素,则返回 true。 boolean isEmpty() 如果此集合不包含任何元素,则返回 true。 abstract IteratorE iterator() 返回此集合中包含的元素的迭代器。 boolean remove(Object o) 如果存在,则从此集合中删除指定元素的单个实例(可选操作)。 boolean removeAll(Collection<?> c) 移除此集合的所有也包含在指定集合中的元素(可选操作)。 boolean retainAll(Collection<?> c) 仅保留此集合中包含在指定集合中的元素(可选操作)。 abstract int size() 返回此集合中的元素数。 Object[] toArray() 返回一个包含此集合中所有元素的数组。 <T> T[] toArray(T[] a) 返回一个包含此集合中所有元素的数组; 返回数组的运行时类型是指定数组的运行时类型。 String toString() 返回此集合的字符串表示形式。 从接口 java.util.Collection 继承的方法 equals, hashCode, parallelStream, removeIf, spliterator, stream 从接口 java.lang.Iterable 继承的方法 forEach 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 构造函数详细信息 AbstractCollection protected AbstractCollection() 唯一的构造函数。 (用于子类构造函数的调用,通常是隐式的。) 方法详情 iterator public abstract IteratorE iterator() 返回此集合中包含的元素的迭代器。 指定者: 接口 CollectionE 中的迭代器 指定者: 接口 IterableE 中的迭代器 返回: 此集合中包含的元素的迭代器...

鸿蒙OS Spliterator.OfPrimitive

Spliterator.OfPrimitive public static interface Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>> extends Spliterator<T> 专用于原始值的 Spliterator。 嵌套类摘要 从接口 java.util.Spliterator 继承的嵌套类/接口 Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitiveT,T_CONS,T_SPLITR> 字段摘要 从接口 java.util.Spliterator 继承的字段 CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED 方法总结 修饰符和类型 方法 描述 default void forEachRemaining(T_CONS action) 在当前线程中按顺序对每个剩余元素执行给定的操作,直到处理完所有元素或该操作引发异常。 boolean tryAdvance(T_CONS action) 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回false。 T_SPLITR trySplit() 如果此 spliterator 可以分区,则返回一个 Spliterator 覆盖元素,从该方法返回时,该 Spliterator 不会被此 Spliterator 覆盖。 从接口 java.util.Spliterator 继承的方法 characteristics, estimateSize, forEachRemaining, getComparator, getExactSizeIfKnown, hasCharacteristics, tryAdvance 方法详情 trySplit T_SPLITR trySplit() 从接口复制的描述:Spliterator 如果此 spliterator 可以分区,则返回一个 Spliterator 覆盖元素,从该方法返回时,该 Spliterator 不会被此 Spliterator 覆盖。 如果此 Spliterator 是 Spliterator.ORDERED,则返回的 Spliterator 必须涵盖元素的严格前缀。 除非此 Spliterator 涵盖无限数量的元素,否则对 trySplit() 的重复调用最终必须返回 null。 在非空返回时: 在拆分之前为 estimateSize() 报告的值,在拆分之后,对于 this 和返回的 Spliterator,必须大于或等于 estimateSize(); 和 如果此 Spliterator 是 SUBSIZED,则此 spliterator 在拆分之前的estimateSize() 必须等于此 spliterator 的estimateSize() 与拆分后返回的 Spliterator 之和。 此方法可能出于任何原因返回 null,包括emptiness、遍历开始后无法拆分、数据结构约束和效率考虑。 指定者: 接口 SpliteratorT 中的 trySplit 返回: 覆盖部分元素的 Spliterator,如果此 spliterator 无法拆分,则为 null tryAdvance boolean tryAdvance(T_CONS action) 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回false。 如果此 Spliterator 是 Spliterator.ORDERED,则按遇到顺序对下一个元素执行操作。 操作引发的异常将转发给调用者。 参数: 参数名称 参数描述 action 行为 返回: 如果在进入此方法时不存在剩余元素,则为 false,否则为 true。 Throws:...

鸿蒙OS Spliterator.OfLong

Spliterator.OfLong public static interface Spliterator.OfLong extends Spliterator.OfPrimitive<Long,LongConsumer,Spliterator.OfLong> 专门用于long值的 Spliterator。 嵌套类摘要 从接口 java.util.Spliterator 继承的嵌套类/接口 Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitiveT,T_CONS,T_SPLITR> 字段摘要 从接口 java.util.Spliterator 继承的字段 CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED 方法总结 修饰符和类型 方法 描述 default void forEachRemaining(Consumer<? super Long> action) 在当前线程中按顺序对每个剩余元素执行给定的操作,直到处理完所有元素或该操作引发异常。 default void forEachRemaining(LongConsumer action) 在当前线程中按顺序对每个剩余元素执行给定的操作,直到处理完所有元素或该操作引发异常。 default boolean tryAdvance(Consumer<? super Long> action) 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回false。 boolean tryAdvance(LongConsumer action) 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回false。 Spliterator.OfLong trySplit() 如果此 spliterator 可以分区,则返回一个 Spliterator 覆盖元素,从该方法返回时,该 Spliterator 不会被此 Spliterator 覆盖。 从接口 java.util.Spliterator 继承的方法 characteristics, estimateSize, getComparator, getExactSizeIfKnown, hasCharacteristics 方法详情 trySplit Spliterator.OfLong trySplit() 从接口复制的描述:Spliterator 如果此 spliterator 可以分区,则返回一个 Spliterator 覆盖元素,从该方法返回时,该 Spliterator 不会被此 Spliterator 覆盖。 如果此 Spliterator 是 Spliterator.ORDERED,则返回的 Spliterator 必须涵盖元素的严格前缀。 除非此 Spliterator 涵盖无限数量的元素,否则对 trySplit() 的重复调用最终必须返回 null。 在非空返回时: 在拆分之前为 estimateSize() 报告的值,在拆分之后,对于 this 和返回的 Spliterator,必须大于或等于 estimateSize();和 如果此 Spliterator 是 SUBSIZED,则此 spliterator 在拆分之前的estimateSize() 必须等于此 spliterator 的estimateSize() 与拆分后返回的 Spliterator 之和。 此方法可能出于任何原因返回 null,包括emptiness、遍历开始后无法拆分、数据结构约束和效率考虑。 指定者: 接口 SpliteratorLong 中的 trySplit 指定者: 接口 Spliterator.OfPrimitiveLong,LongConsumer,Spliterator.OfLong 中的 trySplit 返回: 覆盖部分元素的 Spliterator,如果此 spliterator 无法拆分,则为 null tryAdvance boolean tryAdvance(LongConsumer action) 从接口复制的描述:Spliterator.OfPrimitive 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回 false。 如果此 Spliterator 是 Spliterator.ORDERED,则按遇到顺序对下一个元素执行操作。 操作引发的异常将转发给调用者。...

鸿蒙OS Spliterator.OfInt

Spliterator.OfInt public static interface Spliterator.OfInt extends Spliterator.OfPrimitive<Integer,IntConsumer,Spliterator.OfInt> 专门用于 int 值的 Spliterator。 嵌套类摘要 从接口 java.util.Spliterator 继承的嵌套类/接口 Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>> 字段摘要 从接口 java.util.Spliterator 继承的字段 CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED 方法总结 修饰符和类型 方法 描述 default void forEachRemaining(Consumer<? super Integer> action) 在当前线程中按顺序对每个剩余元素执行给定的操作,直到处理完所有元素或该操作引发异常。 default void forEachRemaining(IntConsumer action) 在当前线程中按顺序对每个剩余元素执行给定的操作,直到处理完所有元素或该操作引发异常。 default boolean tryAdvance(Consumer<? super Integer> action) 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回false。 boolean tryAdvance(IntConsumer action) 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回false。 Spliterator.OfInt trySplit() 如果此 spliterator 可以分区,则返回一个 Spliterator 覆盖元素,从该方法返回时,该 Spliterator 不会被此 Spliterator 覆盖。 从接口 java.util.Spliterator 继承的方法 characteristics, estimateSize, getComparator, getExactSizeIfKnown, hasCharacteristics 方法详情 trySplit Spliterator.OfInt trySplit() 从接口复制的描述:Spliterator 如果此 spliterator 可以分区,则返回一个 Spliterator 覆盖元素,从该方法返回时,该 Spliterator 不会被此 Spliterator 覆盖。 如果此 Spliterator 是 Spliterator.ORDERED,则返回的 Spliterator 必须涵盖元素的严格前缀。 除非此 Spliterator 涵盖无限数量的元素,否则对 trySplit() 的重复调用最终必须返回 null。 在非空返回时: 在拆分之前为 estimateSize() 报告的值,在拆分之后,对于 this 和返回的 Spliterator,必须大于或等于 estimateSize(); 和 如果此 Spliterator 是 SUBSIZED,则此 spliterator 在拆分之前的estimateSize() 必须等于此 spliterator 的estimateSize() 与拆分后返回的 Spliterator 之和。 此方法可能出于任何原因返回 null,包括空虚、遍历开始后无法拆分、数据结构约束和效率考虑。 指定者: 接口 SpliteratorInteger 中的 trySplit 指定者: 接口 Spliterator.OfPrimitiveInteger,IntConsumer,Spliterator.OfInt 中的 trySplit 返回: 覆盖部分元素的 Spliterator,如果此 spliterator 无法拆分,则为 null tryAdvance boolean tryAdvance(IntConsumer action) 从接口复制的描述:Spliterator.OfPrimitive 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回假。 如果此 Spliterator 是...

鸿蒙OS Spliterator.OfDouble

Spliterator.OfDouble public static interface Spliterator.OfDouble extends Spliterator.OfPrimitive<Double,DoubleConsumer,Spliterator.OfDouble> 专门用于double值的 Spliterator。 嵌套类摘要 从接口 java.util.Spliterator 继承的嵌套类/接口 Spliterator.OfDouble, Spliterator.OfInt, Spliterator.OfLong, Spliterator.OfPrimitive<T,T_CONS,T_SPLITR extends Spliterator.OfPrimitive<T,T_CONS,T_SPLITR>> 字段摘要 从接口 java.util.Spliterator 继承的字段 CONCURRENT, DISTINCT, IMMUTABLE, NONNULL, ORDERED, SIZED, SORTED, SUBSIZED 方法总结 修饰符和类型 方法 描述 default void forEachRemaining(Consumer<? super Double> action) 在当前线程中按顺序对每个剩余元素执行给定的操作,直到处理完所有元素或该操作引发异常。 default void forEachRemaining(DoubleConsumer action) 在当前线程中按顺序对每个剩余元素执行给定的操作,直到处理完所有元素或该操作引发异常。 default boolean tryAdvance(Consumer<? super Double> action) 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回false。 boolean tryAdvance(DoubleConsumer action) 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回false。 Spliterator.OfDouble trySplit() 如果此 spliterator 可以分区,则返回一个 Spliterator 覆盖元素,从该方法返回时,该 Spliterator 不会被此 Spliterator 覆盖。 从接口 java.util.Spliterator 继承的方法 characteristics, estimateSize, getComparator, getExactSizeIfKnown, hasCharacteristics 方法详情 trySplit Spliterator.OfDouble trySplit() 从接口复制的描述:Spliterator 如果此 spliterator 可以分区,则返回一个 Spliterator 覆盖元素,从该方法返回时,该 Spliterator 不会被此 Spliterator 覆盖。 如果此 Spliterator 是 Spliterator.ORDERED,则返回的 Spliterator 必须涵盖元素的严格前缀。 除非此 Spliterator 涵盖无限数量的元素,否则对 trySplit() 的重复调用最终必须返回 null。 在非空返回时: 在拆分之前为 estimateSize() 报告的值,在拆分之后,对于 this 和返回的 Spliterator,必须大于或等于 estimateSize(); 和 如果此 Spliterator 是 SUBSIZED,则此 spliterator 在拆分之前的estimateSize() 必须等于此 spliterator 的estimateSize() 与拆分后返回的 Spliterator 之和。 此方法可能出于任何原因返回 null,包括空虚、遍历开始后无法拆分、数据结构约束和效率考虑。 指定者: 接口 SpliteratorDouble 中的 trySplit 指定者: 接口 Spliterator.OfPrimitiveDouble,DoubleConsumer,Spliterator.OfDouble 中的 trySplit 返回: 覆盖部分元素的 Spliterator,如果此 spliterator 无法拆分,则为 null tryAdvance boolean tryAdvance(DoubleConsumer action) 从接口复制的描述:Spliterator.OfPrimitive 如果存在剩余元素,则对其执行给定的操作,返回 true; 否则返回假。 如果此 Spliterator 是 Spliterator.ORDERED,则按遇到顺序对下一个元素执行操作。 操作引发的异常将转发给调用者。...

鸿蒙OS Spliterator

Spliterator public interface Spliterator<T> 用于遍历和划分源元素的对象。 Spliterator 覆盖的元素来源可以是,例如,数组、集合、IO 通道或生成器函数。 Spliterator 可以单独遍历元素(tryAdvance())或批量顺序遍历元素(forEachRemaining())。 Spliterator 也可以将它的一些元素(使用 trySplit())划分为另一个 Spliterator,以用于可能的并行操作。 使用无法拆分或以高度不平衡或低效的方式拆分的 Spliterator 操作不太可能从并行性中受益。 遍历和拆分排气元件; 每个 Spliterator 仅对单个批量计算有用。 Spliterator 还报告其结构、源和元素的一组特征(),来自 ORDERED、DISTINCT、SORTED、SIZED、NONNULL、IMMUTABLE、CONCURRENT 和 SUBSIZED。 Spliterator 客户端可以使用这些来控制、专门化或简化计算。 例如,Collection 的 Spliterator 会报告 SIZED,Set 的 Spliterator 会报告 DISTINCT,SortedSet 的 Spliterator 也会报告 SORTED。 特征被报告为一个简单的联合位集。 一些特征还限制了方法的行为; 例如,如果 ORDERED,遍历方法必须符合其记录的顺序。 未来可能会定义新的特性,因此实现者不应为未列出的值赋予含义。 不报告 IMMUTABLE 或 CONCURRENT 的 Spliterator 应该有一个文档化的策略,涉及: 当 spliterator 绑定到元素源时;结合后检测到的元素源的结构干扰检测。后期绑定 Spliterator 在第一次遍历、第一次拆分或第一次查询估计大小时绑定到元素的源,而不是在创建 Spliterator 时。非后期绑定的 Spliterator 在构造点或任何方法的第一次调用时绑定到元素的源。绑定之前对源所做的修改会在遍历 Spliterator 时反映出来。绑定 Spliterator 后,如果检测到结构干扰,应尽最大努力抛出 ConcurrentModificationException。执行此操作的拆分器称为快速失败。 Spliterator 的批量遍历方法 (forEachRemaining()) 可以优化遍历并在遍历所有元素后检查结构干扰,而不是检查每个元素并立即失败。 Spliterators 可以通过estimateSize() 方法估计剩余元素的数量。 理想情况下,正如 SIZED 特性所反映的那样,该值恰好对应于成功遍历中将遇到的元素数量。 然而,即使在不完全知道的情况下,估计值仍然可能对在源上执行的操作有用,例如帮助确定进一步拆分或顺序遍历剩余元素是否更可取。 尽管它们在并行算法中有明显的用途,但分离器并不期望是线程安全的。 相反,使用拆分器的并行算法的实现应确保拆分器一次仅由一个线程使用。 这通常很容易通过串行线程限制来实现,这通常是通过递归分解工作的典型并行算法的自然结果。 调用 trySplit() 的线程可以将返回的 Spliterator 移交给另一个线程,该线程又可以遍历或进一步拆分该 Spliterator。 如果两个或多个线程在同一个拆分器上同时操作,拆分和遍历的行为是不确定的。 如果原始线程将拆分器交给另一个线程进行处理,最好在 tryAdvance() 消耗任何元素之前进行该切换,因为某些保证(例如 SIZED 拆分器的估计大小()的准确性)仅有效 在遍历开始之前。 为 OfInt、OfLong 和 OfDouble 值提供了 Spliterator 的原始子类型特化。 Spliterator#tryAdvance(java.util.function.Consumer) 和 Spliterator#forEachRemaining(java.util.function.Consumer) 的子类型默认实现将原始值框到其相应包装类的实例中。 这种装箱可能会破坏使用原始专业化获得的任何性能优势。 为避免装箱,应使用相应的基于基元的方法。 例如,应该优先使用 Spliterator.OfInt#tryAdvance(java.util.function.IntConsumer) 和 Spliterator.OfInt#forEachRemaining(java.util.function.IntConsumer),而不是 Spliterator.OfInt#tryAdvance(java.util.function。 消费者)和 Spliterator.OfInt#forEachRemaining(java.util.function.Consumer)。 使用基于装箱的方法 tryAdvance() 和 forEachRemaining() 遍历原始值不会影响遇到转换为装箱值的值的顺序。 嵌套类摘要...