优惠码 第57页 ListResourceBundle java.lang.Object |—java.util.ResourceBundle |—|—java.util.ListResourceBundle public abstract class ListResourceBundle extends ResourceBundle ListResourceBundle 是 ResourceBundle 的抽象子类,它以方便且易于使用的列表管理区域设置的资源。 子类必须覆盖 getContents 并提供一个数组,其中数组中的每个项目都是一对对象。 每对的第一个元素是键,它必须是一个字符串,第二个元素是与该键关联的值。 以下示例显示了具有基本名称“MyResources”的资源束系列的两个成员。 “MyResources”是捆绑包系列的默认成员,“MyResources_fr”是法语成员。 这些成员基于 ListResourceBundle(相关示例显示了如何将捆绑添加到基于属性文件的该系列)。 此示例中的键采用“s1”等形式。实际的键完全取决于您的选择,只要它们与您在程序中用于从包中检索对象的键相同。 键是区分大小写的。 public class MyResources extends ListResourceBundle { protected Object[][] getContents() { return new Object[][] { // LOCALIZE THIS {"s1", "The disk \"{1}\" contains {0}."}, // MessageFormat pattern {"s2", "1"}, // location of {0} in pattern {"s3", "My Disk"}, // sample disk name {"s4", "no files"}, // first ChoiceFormat choice {"s5", "one file"}, // second ChoiceFormat choice {"s6", "{0,number} files"}, // third ChoiceFormat choice {"s7", "3 Mar 96"}, // sample date {"s8", new Dimension(1,5)} // real object, not just string // END OF MATERIAL TO LOCALIZE }; } } public class MyResources_fr extends ListResourceBundle { protected Object[][] getContents()...
2024-04-03
LinkedList java.lang.Object |—java.util.AbstractCollection<E& |—|—java.util.AbstractList<E& |—|—|—java.util.AbstractSequentialList<E& |—|—|—|—java.util.LinkedList<E& public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, Serializable List 和 Deque 接口的双向链表实现。 实现所有可选列表操作,并允许所有元素(包括 null)。 所有操作都按照双向链表的预期执行。 索引到列表中的操作将从开头或结尾遍历列表,以更接近指定索引的为准。 请注意,此实现不同步。 如果多个线程同时访问一个链表,并且至少有一个线程在结构上修改了链表,则必须对外同步。 (结构修改是添加或删除一个或多个元素的任何操作;仅设置元素的值不是结构修改。)这通常是通过同步一些自然封装列表的对象来完成的。 如果不存在这样的对象,则应使用 Collections#synchronizedList 方法“wrapped”该列表。 这最好在创建时完成,以防止对列表的意外不同步访问: List list = Collections.synchronizedList(new LinkedList(...)); 此类的 iterator 和 listIterator 方法返回的迭代器是快速失败的:如果在创建迭代器后的任何时间对列表进行结构修改,除了通过迭代器自己的 remove 或 add 方法之外,迭代器将抛出 ConcurrentModificationException。 因此,面对并发修改,迭代器快速而干净地失败,而不是在未来不确定的时间冒任意的、非确定性的行为。 请注意,不能保证迭代器的快速失败行为,因为一般来说,在存在不同步的并发修改的情况下,不可能做出任何硬保证。 快速失败的迭代器会尽最大努力抛出 ConcurrentModificationException。 因此,编写一个依赖于这个异常的正确性的程序是错误的:迭代器的快速失败行为应该只用于检测错误。 此类是 Java 集合框架的成员。 字段摘要 从类 java.util.AbstractList 继承的字段 modCount 构造函数摘要 构造函数 描述 LinkedList() 构造一个空列表。 LinkedList(Collection<? extends E> c) 按照集合的迭代器返回的顺序构造一个包含指定集合元素的列表。 方法总结 修饰符和类型 方法 描述 void add(int index, E element) 在此列表中的指定位置插入指定元素。 boolean add(E e) 将指定元素附加到此列表的末尾。 boolean addAll(int index, Collection<? extends E> c) 将指定集合中的所有元素插入此列表,从指定位置开始。 boolean addAll(Collection<? extends E> c) 按照指定集合的迭代器返回的顺序,将指定集合中的所有元素附加到此列表的末尾。 void addFirst(E e) 在此列表的开头插入指定元素。 void addLast(E e) 将指定元素附加到此列表的末尾。 void clear() 从此列表中删除所有元素。 Object clone() 返回此 LinkedList 的浅表副本。 boolean contains(Object o) 如果此列表包含指定元素,则返回 true。 IteratorE descendingIterator() 以相反的顺序返回此双端队列中元素的迭代器。 E element() 检索但不删除此列表的头部(第一个元素)。 E get(int index) 返回此列表中指定位置的元素。 E getFirst() 返回此列表中的第一个元素。 E getLast() 返回此列表中的最后一个元素。 int indexOf(Object o) 返回此列表中指定元素第一次出现的索引,如果此列表不包含该元素,则返回 -1。 int lastIndexOf(Object o) 返回此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回 -1。 ListIteratorE listIterator(int index)...
2024-04-03
LinkedHashSet java.lang.Object |—java.util.AbstractCollection<E& |—|—java.util.AbstractSet<E& |—|—|—java.util.HashSet<E& |—|—|—|—java.util.LinkedHashSet<E& public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, Serializable Set 接口的哈希表和链表实现,具有可预测的迭代顺序。 此实现与 HashSet 的不同之处在于它维护一个双向链表,该列表贯穿其所有条目。 该链表定义了迭代顺序,即元素插入集合的顺序(插入顺序)。 请注意,如果将元素重新插入集合中,则插入顺序不受影响。 (如果 s.add(e) 被调用,而 s.contains(e) 将在调用之前立即返回 true,则元素 e 被重新插入到集合 s 中。) 此实现使其客户免于 HashSet 提供的未指定、通常混乱的排序,而不会增加与 TreeSet 相关的成本。 它可用于生成与原始集合具有相同顺序的集合的副本,而不管原始集合的实现如何: void foo(Set s) { Set copy = new LinkedHashSet(s); ... } 如果模块在输入上获取一个集合,复制它,然后返回其顺序由复制的顺序确定的结果,则此技术特别有用。 (客户通常喜欢以与呈现相同的顺序返回物品。) 此类提供所有可选的 Set 操作,并允许 null 元素。 与 HashSet 一样,它为基本操作(添加、包含和删除)提供恒定时间性能,假设哈希函数在桶中正确地分散元素。 由于维护链表的额外费用,性能可能略低于 HashSet,但有一个例外:迭代 LinkedHashSet 所需的时间与集合的大小成正比,而不管其容量如何。 HashSet 的迭代可能会更昂贵,需要的时间与其容量成正比。 链接哈希集有两个影响其性能的参数:初始容量和负载因子。 它们的定义与 HashSet 一样。 但是请注意,对于此类而言,为初始容量选择过高值的惩罚不如 HashSet 严重,因为此类的迭代时间不受容量的影响。 请注意,此实现不同步。 如果多个线程同时访问一个链接的哈希集,并且至少有一个线程修改了该集,则它必须在外部同步。 这通常是通过在一些自然封装集合的对象上同步来完成的。 如果不存在这样的对象,则应使用 Collections#synchronizedSet 方法“wrapped”该集合。 这最好在创建时完成,以防止对集合的意外不同步访问: Set s = Collections.synchronizedSet(new LinkedHashSet(...)); 此类的迭代器方法返回的迭代器是快速失败的:如果在创建迭代器后的任何时间修改集合,除了通过迭代器自己的 remove 方法之外,迭代器将抛出 ConcurrentModificationException。 因此,面对并发修改,迭代器快速而干净地失败,而不是在未来不确定的时间冒任意的、非确定性的行为。 请注意,不能保证迭代器的快速失败行为,因为一般来说,在存在不同步的并发修改的情况下,不可能做出任何硬保证。 快速失败的迭代器会尽最大努力抛出 ConcurrentModificationException。 因此,编写一个依赖于这个异常的正确性的程序是错误的:迭代器的快速失败行为应该只用于检测错误。 此类是 Java 集合框架的成员。 构造函数摘要 构造函数 描述 LinkedHashSet() 使用默认初始容量 (16) 和加载因子 (0.75) 构造一个新的空链接哈希集。 LinkedHashSet(int initialCapacity) 使用指定的初始容量和默认加载因子 (0.75) 构造一个新的空链接哈希集。 LinkedHashSet(int initialCapacity, float loadFactor) 使用指定的初始容量和负载因子构造一个新的空链接哈希集。 LinkedHashSet(Collection<? extends E> c) 使用与指定集合相同的元素构造一个新的链接哈希集。 方法总结 修饰符和类型 方法 描述 SpliteratorE spliterator() 在此集合中的元素上创建一个后期绑定和快速失败的拆分器。 从类 java.util.AbstractCollection 继承的方法 addAll, containsAll, retainAll, toArray, toArray, toString 从类 java.util.AbstractSet...
2024-04-03
LinkedHashMap java.lang.Object |—java.util.AbstractMap<K,V& |—|—java.util.HashMap<K,V& |—|—|—java.util.LinkedHashMap<K,V& public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> Map 接口的哈希表和链表实现,具有可预测的迭代顺序。 此实现与 HashMap 的不同之处在于它维护一个双向链表,该列表贯穿其所有条目。 这个链表定义了迭代顺序,通常是键插入映射的顺序(插入顺序)。 请注意,如果将键重新插入到 map 中,则插入顺序不会受到影响。 (如果在调用 m.containsKey(k) 将在调用之前立即返回 true 时调用 m.put(k, v),则将键 k 重新插入到映射 m 中。) 此实现使其客户免于 HashMap(和 Hashtable)提供的未指定的、通常混乱的排序,而不会增加与 TreeMap 相关的成本。 无论原始 map 的实现如何,它都可用于生成与原始地图具有相同顺序的 map 副本: void foo(Map m) { Map copy = new LinkedHashMap(m); ... } 如果模块在输入上获取映射,复制它,然后返回其顺序由副本确定的结果,则此技术特别有用。 (客户通常喜欢以与呈现相同的顺序返回物品。) 提供了一个特殊的构造函数来创建一个链接哈希映射,其迭代顺序是其条目最后一次访问的顺序,从最近最少访问到最近访问(访问顺序)。 这种映射非常适合构建 LRU 缓存。 调用 put、putIfAbsent、get、getOrDefault、compute、computeIfAbsent、computeIfPresent 或 merge 方法会导致对相应条目的访问(假设它在调用完成后存在)。 如果值被替换,replace 方法只会导致对条目的访问。 putAll 方法为指定映射中的每个映射生成一个条目访问,按照指定映射的条目集迭代器提供键值映射的顺序。 没有其他方法生成条目访问。 特别是,collection-views 上的操作不会影响 backing map 的迭代顺序。 可以重写 removeEldestEntry(java.util.Map.Entry) 方法,以在将新映射添加到映射时自动删除陈旧映射的策略。 此类提供所有可选的 Map 操作,并允许 null 元素。 与 HashMap 一样,它为基本操作(添加、包含和删除)提供恒定时间性能,假设哈希函数在桶中正确地分散元素。 由于维护链表的额外费用,性能可能略低于 HashMap,但有一个例外:迭代 LinkedHashMap 的集合视图所需的时间与映射的大小成正比,而不管其容量如何 . HashMap 的迭代可能更昂贵,需要的时间与其容量成正比。 链接哈希图有两个影响其性能的参数:初始容量和负载因子。 它们的定义与 HashMap 一样。 但是请注意,对于此类而言,为初始容量选择过高值的惩罚不如 HashMap 严重,因为此类的迭代时间不受容量的影响。 请注意,此实现不同步。 如果多个线程同时访问链接的哈希映射,并且至少有一个线程在结构上修改映射,则必须在外部同步。 这通常是通过同步一些自然封装 map 的对象来完成的。 如果不存在这样的对象,则应使用 Collections#synchronizedMap 方法“wrapped” map。 这最好在创建时完成,以防止对 map 的意外不同步访问: Map m = Collections.synchronizedMap(new LinkedHashMap(...)); 结构修改是添加或删除一个或多个映射的任何操作,或者在访问排序的链接哈希映射的情况下,影响迭代顺序。 在插入排序的链接哈希映射中,仅更改与映射中已包含的键关联的值不是结构修改。 在按访问顺序链接的哈希映射中,仅使用 get...
2024-04-03
IntSummaryStatistics java.lang.Object |—java.util.IntSummaryStatistics public class IntSummaryStatistics extends Object implements IntConsumer 用于收集计数、最小值、最大值、总和和平均值等统计信息的状态对象。 此类设计用于(尽管不需要)流。 例如,您可以使用以下方法计算整数流的汇总统计信息: IntSummaryStatistics stats = intStream.collect(IntSummaryStatistics::new, IntSummaryStatistics::accept, IntSummaryStatistics::combine); IntSummaryStatistics 可用作流的缩减目标。 例如: IntSummaryStatistics stats = people.stream() .collect(Collectors.summarizingInt(Person::getDependents)); 这可以一次性计算人数,以及他们的家属人数的最小值、最大值、总和和平均值。 构造函数摘要 构造函数 描述 IntSummaryStatistics() 构造一个具有零计数、零和、Integer.MAX_VALUE 最小值、Integer.MIN_VALUE 最大值和零平均值的空实例。 方法总结 修饰符和类型 方法 描述 void accept(int value) 将新值记录到摘要信息中 void combine(IntSummaryStatistics other) 将另一个 IntSummaryStatistics 的状态合并到这个中。 double getAverage() 返回记录值的算术平均值,如果没有记录值,则返回零。 long getCount() 返回记录的值的计数。 int getMax() 返回记录的最大值,如果没有记录任何值,则返回 Integer.MIN_VALUE。 int getMin() 返回记录的最小值,如果没有记录任何值,则返回 Integer.MAX_VALUE。 long getSum() 返回记录值的总和,如果没有记录值,则返回零。 String toString() 返回对象的字符串表示形式。 从接口 java.util.function.IntConsumer 继承的方法 andThen 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 构造函数详细信息 IntSummaryStatistics public IntSummaryStatistics() 构造一个具有零计数、零和、Integer.MAX_VALUE 最小值、Integer.MIN_VALUE 最大值和零平均值的空实例。 方法详情 accept public void accept(int value) 将新值记录到摘要信息中 指定者: 在接口 IntConsumer 中接受 参数: 参数名称 参数描述 value 输入值 combine public void combine(IntSummaryStatistics other) 将另一个 IntSummaryStatistics 的状态合并到这个中。 参数: 参数名称 参数描述 other 另一个 IntSummaryStatistics Throws: Throw名称 Throw描述 NullPointerException 如果 other 为空 getCount public final long getCount() 返回记录的值的计数。 返回: 值的计数 getSum public...
2024-04-03
IdentityHashMap java.lang.Object |—java.util.AbstractMap<K,V& |—|—java.util.IdentityHashMap<K,V& public class IdentityHashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Serializable, Cloneable 此类使用哈希表实现 Map 接口,在比较键(和值)时使用引用相等代替对象相等。 换句话说,在 IdentityHashMap 中,当且仅当 (k1==k2) 时,两个键 k1 和 k2 才被认为相等。 (在正常的 Map 实现(如 HashMap)中,当且仅当 (k1==null ? k2==null : k1.equals(k2)) 时,才认为两个键 k1 和 k2 相等。) 这个类不是一个通用的 Map 实现! 虽然这个类实现了 Map 接口,但它故意违反了 Map 的一般合同,该合同要求在比较对象时使用 equals 方法。 此类仅在需要引用相等语义的极少数情况下使用。 此类的典型用途是保留拓扑的对象图转换,例如序列化或深度复制。 要执行这样的转换,程序必须维护一个“节点表”来跟踪所有已处理的对象引用。 节点表不能等同于不同的对象,即使它们碰巧相等。 此类的另一个典型用途是维护代理对象。 例如,调试工具可能希望为被调试程序中的每个对象维护一个代理对象。 此类提供所有可选的映射操作,并允许空值和空键。 此类不保证 map 的顺序; 特别是,它不保证订单会随着时间的推移保持不变。 此类为基本操作(get 和 put)提供恒定时间性能,假设系统身份哈希函数 (System#identityHashCode(Object)) 将元素正确地分散在桶中。 此类有一个调整参数(影响性能但不影响语义):预期的最大大小。此参数是映射预计持有的键值映射的最大数量。在内部,此参数用于确定最初包含哈希表的桶数。未指定预期的最大大小和桶数之间的精确关系。 如果映射的大小(键值映射的数量)充分超过预期的最大大小,则增加桶的数量。增加桶的数量(“重新散列”)可能相当昂贵,因此创建具有足够大的预期最大大小的身份散列映射是值得的。另一方面,对集合视图的迭代需要的时间与哈希表中的桶数成正比,因此如果您特别关心迭代性能或内存使用情况,则不要将预期的最大大小设置得太高。 请注意,此实现不同步。如果多个线程同时访问一个身份哈希图,并且至少有一个线程在结构上修改了该 map,则必须在外部进行同步。 (结构修改是添加或删除一个或多个映射的任何操作;仅更改与实例已包含的键关联的值不是结构修改。)这通常通过在自然封装映射的某个对象上同步来完成.如果不存在这样的对象,则应使用 Collections#synchronizedMap 方法 “wrapped” map。这最好在创建时完成,以防止对地图的意外不同步访问: Map m = Collections.synchronizedMap(new IdentityHashMap(...)); 由此类的所有“集合视图方法”返回的集合的迭代器方法返回的迭代器是快速失败的:如果在创建迭代器后的任何时间对映射进行结构修改,除了通过迭代器自己的删除之外的任何方式方法,迭代器将抛出 ConcurrentModificationException。因此,面对并发修改,迭代器快速而干净地失败,而不是在未来不确定的时间冒任意的、非确定性的行为。 请注意,不能保证迭代器的快速失败行为,因为一般来说,在存在不同步的并发修改的情况下,不可能做出任何硬保证。快速失败的迭代器会尽最大努力抛出 ConcurrentModificationException。因此,编写一个依赖于这个异常的正确性的程序是错误的:故障快速迭代器应该只用于检测错误。 实施说明:这是一个简单的线性探针哈希表,如 Sedgewick 和 Knuth 的文本中所述。该数组交替保存键和值。 (与使用单独的数组相比,这对于大型表具有更好的局部性。)对于许多 JRE 实现和操作混合,此类将产生比 HashMap(使用链接而不是线性探测)更好的性能。 此类是 Java 集合框架的成员。 嵌套类摘要 从类 java.util.AbstractMap 继承的嵌套类/接口 AbstractMap.SimpleEntryK,V, AbstractMap.SimpleImmutableEntryK,V 从接口 java.util.Map 继承的嵌套类/接口 Map.EntryK,V 构造函数摘要 构造函数 描述 IdentityHashMap() 构造一个具有默认预期最大大小 (21) 的新的空身份哈希映射。 IdentityHashMap(int expectedMaxSize) 构造一个具有指定预期最大大小的新空映射。 IdentityHashMap(Map<? extends K,? extends V> m) 构造一个新的身份哈希映射,其中包含指定映射中的键值映射。 方法总结 修饰符和类型 方法 描述 void clear() 从此 map 中删除所有映射。...
2024-04-03
Hashtable java.lang.Object |—java.util.Dictionary<K,V& |—|—java.util.Hashtable<K,V& public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, Serializable 这个类实现了一个哈希表,它将键映射到值。 任何非空对象都可以用作键或值。 要成功地从哈希表中存储和检索对象,用作键的对象必须实现 hashCode 方法和 equals 方法。 Hashtable 的实例有两个影响其性能的参数:初始容量和负载因子。 容量是哈希表中的桶数,初始容量只是哈希表创建时的容量。 注意哈希表是开放的:在“哈希冲突”的情况下,单个桶存储多个条目,必须按顺序搜索。 负载因子是哈希表在其容量自动增加之前允许达到的程度的度量。 初始容量和负载因子参数只是实现的提示。 关于何时以及是否调用 rehash 方法的确切细节取决于实现。 通常,默认负载因子 (.75) 在时间和空间成本之间提供了良好的折衷。 较高的值会减少空间开销,但会增加查找条目的时间成本(这反映在大多数 Hashtable 操作中,包括 get 和 put)。 初始容量控制了浪费空间和需要重新哈希操作之间的权衡,这些操作非常耗时。 如果初始容量大于 Hashtable 将包含的最大条目数除以其负载因子,则不会发生重新哈希操作。 但是,将初始容量设置得太高会浪费空间。 如果要在 Hashtable 中创建许多条目,则创建具有足够大容量的条目可能比让它根据需要执行自动重新散列以增长表来更有效地插入条目。 此示例创建一个数字哈希表。 它使用数字的名称作为键: Hashtable<String, Integer> numbers = new Hashtable<String, Integer>(); numbers.put("one", 1); numbers.put("two", 2); numbers.put("three", 3); 要检索数字,请使用以下代码: Integer n = numbers.get("two"); if (n != null) { System.out.println("two = " + n); } 由此类的所有“集合视图方法”返回的集合的迭代器方法返回的迭代器是快速失败的:如果在创建迭代器后的任何时间对 Hashtable 进行结构修改,除了通过迭代器自己的删除之外的任何方式 方法,迭代器将抛出 ConcurrentModificationException。 因此,面对并发修改,迭代器快速而干净地失败,而不是在未来不确定的时间冒任意的、非确定性的行为。 Hashtable 的键和元素方法返回的枚举不是快速失败的。 请注意,不能保证迭代器的快速失败行为,因为一般来说,在存在不同步的并发修改的情况下,不可能做出任何硬保证。 快速失败的迭代器会尽最大努力抛出 ConcurrentModificationException。 因此,编写一个依赖于这个异常的正确性的程序是错误的:迭代器的快速失败行为应该只用于检测错误。 从 Java 2 平台 v1.2 开始,该类被改进为实现 Map 接口,使其成为 Java Collections Framework 的成员。 与新的集合实现不同,Hashtable 是同步的。 如果不需要线程安全的实现,建议使用 HashMap 代替 Hashtable。 如果需要线程安全的高并发实现,那么建议使用 ConcurrentHashMap 代替 Hashtable。 嵌套类摘要 从接口 java.util.Map 继承的嵌套类/接口 Map.EntryK,V 构造函数摘要 构造函数 描述 Hashtable()...
2024-04-03
HashSet java.lang.Object |—java.util.AbstractCollection<E& |—|—java.util.AbstractSet<E& |—|—|—java.util.HashSet<E& public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, Serializable 该类实现了由哈希表(实际上是 HashMap 实例)支持的 Set 接口。 它不保证集合的迭代顺序; 特别是,它不保证订单会随着时间的推移保持不变。 此类允许空元素。 此类为基本操作(添加、删除、包含和大小)提供恒定的时间性能,假设哈希函数将元素正确地分散在桶中。 迭代这个集合需要的时间与 HashSet 实例的大小(元素的数量)加上支持 HashMap 实例的“容量”(桶的数量)的总和成正比。 因此,如果迭代性能很重要,则不要将初始容量设置得太高(或负载因子太低),这一点非常重要。 请注意,此实现不同步。 如果多个线程同时访问一个哈希集,并且至少有一个线程修改了该集,则必须在外部进行同步。 这通常是通过在一些自然封装集合的对象上同步来完成的。 如果不存在这样的对象,则应使用 Collections#synchronizedSet 方法“包装”该集合。 这最好在创建时完成,以防止对集合的意外不同步访问: Set s = Collections.synchronizedSet(new HashSet(...)); 此类的迭代器方法返回的迭代器是快速失败的:如果在创建迭代器后的任何时间修改了集合,除了通过迭代器自己的 remove 方法之外的任何方式,迭代器都会抛出 ConcurrentModificationException。 因此,面对并发修改,迭代器快速而干净地失败,而不是在未来不确定的时间冒任意的、非确定性的行为。 请注意,不能保证迭代器的快速失败行为,因为一般来说,在存在不同步的并发修改的情况下,不可能做出任何硬保证。 快速失败的迭代器会尽最大努力抛出 ConcurrentModificationException。 因此,编写一个依赖于这个异常的正确性的程序是错误的:迭代器的快速失败行为应该只用于检测错误。 此类是 Java 集合框架的成员。 构造函数摘要 构造函数 描述 HashSet() 构造一个新的空集; 支持的 HashMap 实例具有默认的初始容量 (16) 和加载因子 (0.75)。 HashSet(int initialCapacity) 构造一个新的空集; 支持 HashMap 实例具有指定的初始容量和默认加载因子 (0.75)。 HashSet(int initialCapacity, float loadFactor) 构造一个新的空集; 后备 HashMap 实例具有指定的初始容量和指定的负载因子。 HashSet(Collection<? extends E> c) 构造一个包含指定集合中元素的新集合。 方法总结 修饰符和类型 方法 描述 boolean add(E e) 如果指定的元素尚不存在,则将其添加到此集合中。 void clear() 从此集合中移除所有元素。 Object clone() 返回此 HashSet 实例的浅表副本:元素本身未被克隆。 boolean contains(Object o) 如果此集合包含指定的元素,则返回 true。 boolean isEmpty() 如果此集合不包含任何元素,则返回 true。 IteratorE iterator() 返回此集合中元素的迭代器。 boolean remove(Object o) 如果存在,则从此集合中删除指定的元素。 int size() 返回此集合中的元素数(其基数)。 SpliteratorE spliterator() 在此集合中的元素上创建一个后期绑定和快速失败的拆分器。 从类 java.util.AbstractCollection 继承的方法 addAll, containsAll, retainAll, toArray, toArray, toString 从类 java.util.AbstractSet 继承的方法 equals, hashCode, removeAll 从接口 java.util.Collection 继承的方法 parallelStream, removeIf, stream 从接口 java.lang.Iterable 继承的方法 forEach 从类 java.lang.Object 继承的方法 finalize, getClass, notify, notifyAll, wait, wait, wait 从接口 java.util.Set 继承的方法 addAll, containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray 构造函数详细信息...
2024-04-03
Dictionary java.lang.Object |—java.util.Dictionary<K,V& public abstract class Dictionary<K,V> extends Object Dictionary 类是任何类的抽象父类,例如 Hashtable,它将键映射到值。 每个键和每个值都是一个对象。 在任何一个 Dictionary 对象中,每个键最多与一个值相关联。 给定一个字典和一个键,可以查找相关的元素。 任何非空对象都可以用作键和值。 通常,此类的实现应使用 equals 方法来确定两个键是否相同。 注意:此类已过时。 新的实现应该实现 Map 接口,而不是扩展这个类。 构造函数摘要 构造函数 描述 Dictionary() 唯一的构造函数 方法总结 修饰符和类型 方法 描述 abstract EnumerationV elements() 返回此字典中值的枚举。 abstract V get(Object key) 返回此字典中键映射到的值。 abstract boolean isEmpty() 测试此字典是否没有将键映射到值。 abstract EnumerationK keys() 返回此字典中键的枚举。 abstract V put(K key, V value) 将指定的键映射到此字典中的指定值。 abstract V remove(Object key) 从此字典中删除键(及其对应的值)。 abstract int size() 返回此字典中的条目数(不同的键)。 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 构造函数详细信息 Dictionary public Dictionary() 唯一的构造函数。 (用于子类构造函数的调用,通常是隐式的。) 方法详情 size public abstract int size() 返回此字典中的条目数(不同的键)。 返回: 此字典中的键数。 isEmpty public abstract boolean isEmpty() 测试此字典是否没有将键映射到值。 isEmpty 方法的一般约定是,当且仅当此字典不包含条目时,结果才为true。 返回: 如果此字典没有将键映射到值,则为 true; 否则为false。 keys public abstract EnumerationK keys() 返回此字典中键的枚举。 keys 方法的一般约定是返回一个 Enumeration 对象,该对象将生成该字典包含条目的所有键。 返回: 此字典中键的枚举。 elements public abstract EnumerationV elements() 返回此字典中值的枚举。 elements 方法的一般约定是返回一个 Enumeration ,它将生成该字典中条目中包含的所有元素。 返回: 此字典中的值的枚举。 get public abstract V get(Object key) 返回此字典中键映射到的值。 isEmpty 方法的一般约定是,如果此字典包含指定键的条目,则返回关联的值; 否则,返回...
2024-04-03
DoubleSummaryStatistics java.lang.Object |—java.util.DoubleSummaryStatistics public class DoubleSummaryStatistics extends Object implements DoubleConsumer 用于收集计数、最小值、最大值、总和和平均值等统计信息的状态对象。 此类设计用于(尽管不需要)流。 例如,您可以使用以下方法计算双精度流的汇总统计信息: DoubleSummaryStatistics stats = doubleStream.collect(DoubleSummaryStatistics::new, DoubleSummaryStatistics::accept, DoubleSummaryStatistics::combine); DoubleSummaryStatistics 可用作流的缩减目标。 例如: DoubleSummaryStatistics stats = people.stream() .collect(Collectors.summarizingDouble(Person::getWeight)); 这会在一次通过中计算人数,以及他们的权重的最小值、最大值、总和和平均值。 构造函数摘要 构造函数 描述 DoubleSummaryStatistics() 构造一个具有零计数、零和、Double.POSITIVE_INFINITY 最小值、Double.NEGATIVE_INFINITY 最大值和零平均值的空实例。 方法总结 修饰符和类型 方法 描述 void accept(double value) 将另一个值记录到摘要信息中。 void combine(DoubleSummaryStatistics other) 将另一个 DoubleSummaryStatistics 的状态合并到这个中。 double getAverage() 返回记录值的算术平均值,如果没有记录值,则返回零。 long getCount() 返回记录的值的计数。 double getMax() 返回最大记录值,如果任何记录值为 NaN,则返回 Double.NaN;如果没有记录值,则返回 Double.NEGATIVE_INFINITY。 double getMin() 返回最小记录值,如果任何记录值为 NaN,则返回 Double.NaN;如果没有记录值,则返回 Double.POSITIVE_INFINITY。 double getSum() 返回记录值的总和,如果没有记录值,则返回零。 String toString() 返回对象的字符串表示形式。 从接口 java.util.function.DoubleConsumer 继承的方法 andThen 从类 java.lang.Object 继承的方法 clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait 构造函数详细信息 DoubleSummaryStatistics public DoubleSummaryStatistics() 构造一个具有零计数、零和、Double.POSITIVE_INFINITY 最小值、Double.NEGATIVE_INFINITY 最大值和零平均值的空实例。 方法详情 accept public void accept(double value) 将另一个值记录到摘要信息中。 指定者: 在接口 DoubleConsumer 中接受 参数: 参数名称 参数描述 value 输入值 combine public void combine(DoubleSummaryStatistics other) 将另一个 DoubleSummaryStatistics 的状态合并到这个中。 参数: 参数名称 参数描述 other 另一个 DoubleSummaryStatistics Throws: Throw名称 Throw描述 NullPointerException 如果其他为空 getCount public final long getCount() 返回记录的值的计数。 返回: 值的计数 getSum public...
2024-04-03