当前位置: 首页 > article >正文

List 源码翻译

List 源码翻译-jdk1.8

翻译来自 AI 大模型。

全部源码翻译下载


/** 版权所有 (c) 1997, 2014, Oracle 和/或其附属公司。保留所有权利。* ORACLE 专有/机密。使用受许可条款约束。*********************/package java.util;import java.util.function.UnaryOperator;/*** 有序集合(也称为<i>序列</i>)。此接口的用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引(列表中的位置)访问元素,并在列表中搜索元素。<p>** 与集合不同,列表通常允许重复元素。更正式地说,列表通常允许存在两个元素 <tt>e1</tt> 和 <tt>e2</tt> 使得 <tt>e1.equals(e2)</tt>,并且如果允许 null 元素,通常也允许多个 null 元素。虽然可以想象有人可能希望实现一个禁止重复的列表,通过在用户尝试插入重复元素时抛出运行时异常,但我们预计这种用法很少见。<p>** <tt>List</tt> 接口在 <tt>Collection</tt> 接口指定的合同之外,对 <tt>iterator</tt>、<tt>add</tt>、<tt>remove</tt>、<tt>equals</tt> 和 <tt>hashCode</tt> 方法的合同提出了额外的要求。为了方便起见,这里也包括了其他继承方法的声明。<p>** <tt>List</tt> 接口提供了四种方法来按位置(索引)访问列表元素。列表(如 Java 数组)是基于零的。请注意,对于某些实现,这些操作的执行时间可能与索引值成正比(例如 <tt>LinkedList</tt> 类)。因此,如果调用者不知道实现,通常遍历列表中的元素比通过索引访问它更可取。<p>** <tt>List</tt> 接口提供了一种特殊的迭代器,称为 <tt>ListIterator</tt>,除了 <tt>Iterator</tt> 接口提供的正常操作外,还允许元素插入和替换以及双向访问。提供了一种方法来获取从列表中指定位置开始的列表迭代器。<p>** <tt>List</tt> 接口提供了两种方法来搜索指定的对象。从性能角度来看,应谨慎使用这些方法。在许多实现中,它们将执行代价高昂的线性搜索。<p>** <tt>List</tt> 接口提供了两种方法来高效地在列表的任意点插入和删除多个元素。<p>** 注意:虽然列表可以包含自身作为元素,但强烈建议谨慎使用:在这种列表上的 <tt>equals</tt> 和 <tt>hashCode</tt> 方法将不再明确定义。** <p>某些列表实现对其可能包含的元素有特定限制。例如,某些实现禁止 null 元素,而某些实现对其元素的类型有限制。尝试添加不合格的元素将抛出未检查的异常,通常是 <tt>NullPointerException</tt> 或 <tt>ClassCastException</tt>。尝试查询不合格元素的存在可能会抛出异常,或者简单地返回 false;一些实现将表现出前者的行为,而一些实现将表现出后者的行为。更一般地说,尝试对不合格元素执行不会导致将不合格元素插入列表的操作可能会抛出异常,或者可能会成功,具体取决于实现。此类异常在本接口的规范中被标记为“可选”。** <p>此接口是* <a href="{@docRoot}/../technotes/guides/collections/index.html">* Java Collections Framework</a> 的成员。** @param <E> 此列表中的元素类型** @author  Josh Bloch* @author  Neal Gafter* @see Collection* @see Set* @see ArrayList* @see LinkedList* @see Vector* @see Arrays#asList(Object[])* @see Collections#nCopies(int, Object)* @see Collections#EMPTY_LIST* @see AbstractList* @see AbstractSequentialList* @since 1.2*/public interface List<E> extends Collection<E> {// 查询操作/*** 返回此列表中的元素数量。如果此列表包含的元素超过 <tt>Integer.MAX_VALUE</tt>,则返回 <tt>Integer.MAX_VALUE</tt>。** @return 此列表中的元素数量*/int size();/*** 如果此列表不包含任何元素,则返回 <tt>true</tt>。** @return 如果此列表不包含任何元素,则返回 <tt>true</tt>*/boolean isEmpty();/*** 如果此列表包含指定的元素,则返回 <tt>true</tt>。更正式地说,如果且仅当此列表包含至少一个元素 <tt>e</tt> 使得* <tt>(o==null&nbsp;?&nbsp;e==null&nbsp;:&nbsp;o.equals(e))</tt>,则返回 <tt>true</tt>。** @param o 要测试其在此列表中是否存在性的元素* @return 如果此列表包含指定的元素,则返回 <tt>true</tt>* @throws ClassCastException 如果指定元素的类型与此列表不兼容* (<a href="Collection.html#optional-restrictions">可选</a>)* @throws NullPointerException 如果指定的元素为 null 且此列表不允许 null 元素* (<a href="Collection.html#optional-restrictions">可选</a>)*/boolean contains(Object o);/*** 返回一个迭代器,按正确顺序遍历此列表中的元素。** @return 按正确顺序遍历此列表中的元素的迭代器*/Iterator<E> iterator();/*** 返回一个包含此列表中所有元素的数组(从第一个到最后一个元素)。** <p>返回的数组将是“安全的”,即此列表不会维护对它的任何引用。(换句话说,即使此列表由数组支持,此方法也必须分配一个新数组)。因此,调用者可以自由地修改返回的数组。** <p>此方法充当基于数组的 API 和基于集合的 API 之间的桥梁。** @return 包含此列表中所有元素的数组* @see Arrays#asList(Object[])*/Object[] toArray();/*** 返回一个包含此列表中所有元素的数组(从第一个元素到最后一个元素);返回数组的运行时类型是指定数组的类型。如果列表适合指定的数组,则返回该数组。否则,将分配一个新的数组,其运行时类型是指定数组的类型,大小为列表的大小。** <p>如果列表适合指定的数组并且有剩余空间(即,数组的元素比列表多),则数组中紧跟在列表末尾的元素被设置为 <tt>null</tt>。* (这仅在调用者知道列表中不包含任何 null 元素时,用于确定列表的长度是有用的。)** <p>像 {@link #toArray()} 方法一样,此方法充当基于数组和基于集合的 API 之间的桥梁。此外,此方法允许对输出数组的运行时类型进行精确控制,并且在某些情况下,可以用来节省分配成本。** <p>假设 <tt>x</tt> 是一个已知仅包含字符串的列表。以下代码可用于将列表转储到新分配的 <tt>String</tt> 数组中:** <pre>{@code*     String[] y = x.toArray(new String[0]);* }</pre>** 请注意,<tt>toArray(new Object[0])</tt> 在功能上与 <tt>toArray()</tt> 相同。** @param a 如果足够大,则将此列表中的元素存储到此数组中;否则,为此目的分配一个新的相同运行时类型的数组。* @return 包含此列表中元素的数组* @throws ArrayStoreException 如果指定数组的运行时类型不是此列表中每个元素的运行时类型的超类型* @throws NullPointerException 如果指定的数组为 null*/<T> T[] toArray(T[] a);// 修改操作/*** 将指定的元素添加到此列表的末尾(可选操作)。** <p>支持此操作的列表可能对可以添加到此列表中的元素施加限制。特别是,某些列表将拒绝添加 null 元素,而其他列表将对可以添加的元素类型施加限制。列表类应在文档中明确指定对可以添加的元素的任何限制。** @param e 要添加到此列表的元素* @return <tt>true</tt>(如 {@link Collection#add} 所指定)* @throws UnsupportedOperationException 如果此列表不支持 <tt>add</tt> 操作* @throws ClassCastException 如果指定元素的类阻止其被添加到此列表* @throws NullPointerException 如果指定的元素为 null 而此列表不允许 null 元素* @throws IllegalArgumentException 如果此元素的某些属性阻止其被添加到此列表*/boolean add(E e);/*** 如果存在,则从此列表中移除指定元素的第一个出现(可选操作)。如果此列表不包含该元素,则列表不变。更正式地说,移除索引 <tt>i</tt> 最低的元素,使得* <tt>(o==null&nbsp;?&nbsp;get(i)==null&nbsp;:&nbsp;o.equals(get(i)))</tt>* (如果存在这样的元素)。如果此列表包含指定的元素(或等效地,如果此列表因调用而改变),则返回 <tt>true</tt>。** @param o 要从此列表中移除的元素(如果存在)* @return <tt>true</tt> 如果此列表包含指定的元素* @throws ClassCastException 如果指定元素的类型与此列表不兼容* (<a href="Collection.html#optional-restrictions">可选</a>)* @throws NullPointerException 如果指定的元素为 null 而此列表不允许 null 元素* (<a href="Collection.html#optional-restrictions">可选</a>)* @throws UnsupportedOperationException 如果此列表不支持 <tt>remove</tt> 操作*/boolean remove(Object o);// 批量修改操作/*** 如果此列表包含指定集合中的所有元素,则返回 <tt>true</tt>。** @param  c 要检查是否包含在此列表中的集合* @return <tt>true</tt> 如果此列表包含指定集合中的所有元素* @throws ClassCastException 如果指定集合中的一个或多个元素的类型与此列表不兼容* (<a href="Collection.html#optional-restrictions">可选</a>)* @throws NullPointerException 如果指定的集合包含一个或多个 null 元素而此列表不允许 null 元素* (<a href="Collection.html#optional-restrictions">可选</a>),或指定的集合为 null* @see #contains(Object)*/boolean containsAll(Collection<?> c);/*** 将指定集合中的所有元素按指定集合的迭代器返回的顺序添加到此列表的末尾(可选操作)。如果在操作进行过程中修改了指定的集合,此操作的行为是未定义的。(请注意,如果指定的集合是此列表,并且它非空,则会发生这种情况。)** @param c 包含要添加到此列表的元素的集合* @return <tt>true</tt> 如果此列表因调用而改变* @throws UnsupportedOperationException 如果此列表不支持 <tt>addAll</tt> 操作* @throws ClassCastException 如果指定集合中的元素的类阻止其被添加到此列表* @throws NullPointerException 如果指定的集合包含一个或多个 null 元素而此列表不允许 null 元素,或指定的集合为 null* @throws IllegalArgumentException 如果指定集合中的元素的某些属性阻止其被添加到此列表* @see #add(Object)*/boolean addAll(Collection<? extends E> c);/*** 将指定集合中的所有元素插入到此列表的指定位置(可选操作)。将当前位置(如果有)及其后续元素向右移动(增加它们的索引)。新元素将按照指定集合的迭代器返回的顺序出现在此列表中。如果在操作进行过程中修改了指定的集合,则此操作的行为是未定义的。(注意,如果指定的集合是此列表,并且它非空,则会发生这种情况。)** @param index 指定集合中的第一个元素要插入的位置* @param c 包含要添加到此列表的元素的集合* @return 如果此列表因调用而改变,则返回 <tt>true</tt>* @throws UnsupportedOperationException 如果此列表不支持 <tt>addAll</tt> 操作* @throws ClassCastException 如果指定集合中元素的类阻止它被添加到此列表* @throws NullPointerException 如果指定集合包含一个或多个 null 元素且此列表不允许 null 元素,或者指定的集合为 null* @throws IllegalArgumentException 如果指定集合中元素的某些属性阻止它被添加到此列表* @throws IndexOutOfBoundsException 如果索引超出范围*         (<tt>index &lt; 0 || index &gt; size()</tt>)*/boolean addAll(int index, Collection<? extends E> c);/*** 从此列表中移除所有包含在指定集合中的元素(可选操作)。** @param c 包含要从此列表中移除的元素的集合* @return 如果此列表因调用而改变,则返回 <tt>true</tt>* @throws UnsupportedOperationException 如果此列表不支持 <tt>removeAll</tt> 操作* @throws ClassCastException 如果此列表中元素的类与指定集合不兼容* (<a href="Collection.html#optional-restrictions">可选</a>)* @throws NullPointerException 如果此列表包含 null 元素且指定集合不允许 null 元素*         (<a href="Collection.html#optional-restrictions">可选</a>),*         或者指定的集合为 null* @see #remove(Object)* @see #contains(Object)*/boolean removeAll(Collection<?> c);/*** 仅保留此列表中包含在指定集合中的元素(可选操作)。换句话说,从此列表中移除所有不包含在指定集合中的元素。** @param c 包含要在此列表中保留的元素的集合* @return 如果此列表因调用而改变,则返回 <tt>true</tt>* @throws UnsupportedOperationException 如果此列表不支持 <tt>retainAll</tt> 操作* @throws ClassCastException 如果此列表中元素的类与指定集合不兼容* (<a href="Collection.html#optional-restrictions">可选</a>)* @throws NullPointerException 如果此列表包含 null 元素且指定集合不允许 null 元素*         (<a href="Collection.html#optional-restrictions">可选</a>),*         或者指定的集合为 null* @see #remove(Object)* @see #contains(Object)*/boolean retainAll(Collection<?> c);/*** 将此列表中的每个元素替换为应用操作符后得到的结果。操作符抛出的错误或运行时异常将传递给调用者。** @implSpec* 默认实现等效于,对于此 {@code list}:* <pre>{@code*     final ListIterator<E> li = list.listIterator();*     while (li.hasNext()) {*         li.set(operator.apply(li.next()));*     }* }</pre>** 如果列表的列表迭代器不支持 {@code set} 操作,则在替换第一个元素时将抛出 {@code UnsupportedOperationException}。** @param operator 要应用于每个元素的操作符* @throws UnsupportedOperationException 如果此列表不可修改。*         实现可能在元素无法被替换或通常不支持修改时抛出此异常* @throws NullPointerException 如果指定的操作符为 null 或操作符结果为 null 值且此列表不允许 null 元素*         (<a href="Collection.html#optional-restrictions">可选</a>)* @since 1.8*/default void replaceAll(UnaryOperator<E> operator) {Objects.requireNonNull(operator);final ListIterator<E> li = this.listIterator();while (li.hasNext()) {li.set(operator.apply(li.next()));}}/*** 根据指定的 {@link Comparator} 确定的顺序对此列表进行排序。** <p>此列表中的所有元素必须使用指定的比较器 <i>相互可比较</i>(即,对于列表中的任何元素 {@code e1} 和 {@code e2},{@code c.compare(e1, e2)} 不应抛出 {@code ClassCastException})。** <p>如果指定的比较器为 {@code null},则此列表中的所有元素必须实现 {@link Comparable} 接口,并且应使用元素的 {@linkplain Comparable 自然顺序}。** <p>此列表必须是可修改的,但不必是可调整大小的。** @implSpec* 默认实现获取包含此列表中所有元素的数组,对数组进行排序,并迭代此列表,从数组的相应位置重置每个元素。(这避免了尝试就地对链表进行排序时可能导致的 n<sup>2</sup> log(n) 性能。)** @implNote* 此实现是一个稳定的、适应性的、迭代的归并排序,当输入数组部分排序时,所需的比较次数远少于 n lg(n),而当输入数组随机排序时,提供传统归并排序的性能。如果输入数组几乎已排序,实现所需的比较次数大约为 n。临时存储需求从几乎已排序的输入数组的小常数到随机排序的输入数组的 n/2 对象引用不等。** <p>实现同样利用输入数组中的升序和降序,并且可以利用同一输入数组中不同部分的升序和降序。它非常适合合并两个或多个已排序的数组:只需将数组连接起来并排序结果数组。** <p>实现改编自 Tim Peters 为 Python 编写的列表排序* (<a href="http://svn.python.org/projects/python/trunk/Objects/listsort.txt">* TimSort</a>)。它使用了 Peter McIlroy 的 "Optimistic Sorting and Information Theoretic Complexity" 中的技术,该文发表在第四届年度 ACM-SIAM 离散算法研讨会论文集,第 467-474 页,1993 年 1 月。** @param c 用于比较列表元素的 {@code Comparator}。*          {@code null} 值表示应使用元素的 {@linkplain Comparable 自然顺序}* @throws ClassCastException 如果列表包含使用指定比较器 <i>相互不可比较</i> 的元素* @throws UnsupportedOperationException 如果列表的列表迭代器不支持 {@code set} 操作* @throws IllegalArgumentException*         (<a href="Collection.html#optional-restrictions">可选</a>)*         如果发现比较器违反了 {@link Comparator} 合约* @since 1.8*/@SuppressWarnings({"unchecked", "rawtypes"})default void sort(Comparator<? super E> c) {Object[] a = this.toArray();Arrays.sort(a, (Comparator) c);ListIterator<E> i = this.listIterator();for (Object e : a) {i.next();i.set((E) e);}}/*** 从此列表中移除所有元素(可选操作)。* 调用此方法后,列表将为空。** @throws UnsupportedOperationException 如果此列表不支持 <tt>clear</tt> 操作*/void clear();// 比较和哈希/*** 将指定对象与此列表进行相等性比较。仅当指定对象也是一个列表,两个列表具有相同的大小,并且两个列表中所有对应的元素对都是 <i>相等</i> 时,返回 <tt>true</tt>。* (两个元素 <tt>e1</tt> 和 <tt>e2</tt> 是 <i>相等</i> 的,如果 <tt>(e1==null ? e2==null : e1.equals(e2))</tt>。)换句话说,* 两个列表如果包含相同顺序的相同元素,则定义为相等。此定义确保 <tt>equals</tt> 方法在 <tt>List</tt> 接口的不同实现之间正确工作。** @param o 要与此列表进行相等性比较的对象* @return 如果指定对象与此列表相等,则返回 <tt>true</tt>*/boolean equals(Object o);/*** 返回此列表的哈希码值。列表的哈希码定义为以下计算的结果:* <pre>{@code*     int hashCode = 1;*     for (E e : list)*         hashCode = 31*hashCode + (e==null ? 0 : e.hashCode());* }</pre>* 这确保了对于任何两个列表 <tt>list1</tt> 和 <tt>list2</tt>,<tt>list1.equals(list2)</tt> 意味着 <tt>list1.hashCode()==list2.hashCode()</tt>,* 符合 {@link Object#hashCode} 的一般约定。** @return 此列表的哈希码值* @see Object#equals(Object)* @see #equals(Object)*/int hashCode();// 位置访问操作/*** 返回此列表中指定位置的元素。** @param index 要返回的元素的索引* @return 此列表中指定位置的元素* @throws IndexOutOfBoundsException 如果索引超出范围*         (<tt>index &lt; 0 || index &gt;= size()</tt>)*/E get(int index);/*** 用指定元素替换此列表中指定位置的元素(可选操作)。** @param index 要替换的元素的索引* @param element 要存储在指定位置的元素* @return 之前位于指定位置的元素* @throws UnsupportedOperationException 如果此列表不支持 <tt>set</tt> 操作* @throws ClassCastException 如果指定元素的类阻止其被添加到此列表* @throws NullPointerException 如果指定元素为 null 且此列表不允许 null 元素* @throws IllegalArgumentException 如果指定元素的某些属性阻止其被添加到此列表* @throws IndexOutOfBoundsException 如果索引超出范围*         (<tt>index &lt; 0 || index &gt;= size()</tt>)*/E set(int index, E element);/*** 在此列表的指定位置插入指定元素(可选操作)。将当前位置(如果有)和后续元素向右移动(索引加一)。** @param index 要插入指定元素的位置* @param element 要插入的元素* @throws UnsupportedOperationException 如果此列表不支持 <tt>add</tt> 操作* @throws ClassCastException 如果指定元素的类阻止其被添加到此列表* @throws NullPointerException 如果指定元素为 null 且此列表不允许 null 元素* @throws IllegalArgumentException 如果指定元素的某些属性阻止其被添加到此列表* @throws IndexOutOfBoundsException 如果索引超出范围*         (<tt>index &lt; 0 || index &gt; size()</tt>)*/void add(int index, E element);/*** 从此列表中移除指定位置的元素(可选操作)。将后续元素向左移动(索引减一)。返回被移除的元素。** @param index 要移除的元素的索引* @return 之前位于指定位置的元素* @throws UnsupportedOperationException 如果此列表不支持 <tt>remove</tt> 操作* @throws IndexOutOfBoundsException 如果索引超出范围*         (<tt>index &lt; 0 || index &gt;= size()</tt>)*/E remove(int index);// 搜索操作/*** 返回此列表中第一次出现的指定元素的索引,如果此列表不包含该元素,则返回 -1。* 更正式地说,返回最低的索引 <tt>i</tt>,使得 <tt>(o==null&nbsp;?&nbsp;get(i)==null&nbsp;:&nbsp;o.equals(get(i)))</tt>,* 如果没有这样的索引,则返回 -1。** @param o 要搜索的元素* @return 此列表中第一次出现的指定元素的索引,如果此列表不包含该元素,则返回 -1* @throws ClassCastException 如果指定元素的类型与此列表不兼容*         (<a href="Collection.html#optional-restrictions">可选</a>)* @throws NullPointerException 如果指定元素为 null 且此列表不允许 null 元素*         (<a href="Collection.html#optional-restrictions">可选</a>)*/int indexOf(Object o);/*** 返回此列表中最后一次出现的指定元素的索引,如果此列表不包含该元素,则返回 -1。* 更正式地说,返回最高的索引 <tt>i</tt>,使得 <tt>(o==null&nbsp;?&nbsp;get(i)==null&nbsp;:&nbsp;o.equals(get(i)))</tt>,* 如果没有这样的索引,则返回 -1。** @param o 要搜索的元素* @return 此列表中最后一次出现的指定元素的索引,如果此列表不包含该元素,则返回 -1* @throws ClassCastException 如果指定元素的类型与此列表不兼容*         (<a href="Collection.html#optional-restrictions">可选</a>)* @throws NullPointerException 如果指定元素为 null 且此列表不允许 null 元素*         (<a href="Collection.html#optional-restrictions">可选</a>)*/int lastIndexOf(Object o);// 列表迭代器/*** 返回一个迭代器,用于遍历此列表中的元素(按正确的顺序)。** @return 一个迭代器,用于遍历此列表中的元素(按正确的顺序)*/ListIterator<E> listIterator();/*** 返回一个迭代器,用于从列表中指定位置开始遍历元素(按正确的顺序)。* 指定的索引表示通过初始调用 {@link ListIterator#next next} 将返回的第一个元素。* 通过初始调用 {@link ListIterator#previous previous} 将返回指定索引减一的元素。** @param index 列表迭代器返回的第一个元素的索引(通过调用 {@link ListIterator#next next})* @return 一个迭代器,用于从列表中指定位置开始遍历元素(按正确的顺序)* @throws IndexOutOfBoundsException 如果索引超出范围*         ({@code index < 0 || index > size()})*/ListIterator<E> listIterator(int index);// 视图/*** 返回此列表中指定的 <tt>fromIndex</tt>(包含)到 <tt>toIndex</tt>(不包含)之间的部分视图。* (如果 <tt>fromIndex</tt> 和 <tt>toIndex</tt> 相等,返回的列表为空。)* 返回的列表由这个列表支持,因此返回列表中的非结构化更改会反映在这个列表中,反之亦然。* 返回的列表支持此列表支持的所有可选列表操作。<p>** 此方法消除了显式范围操作的需要(通常数组中存在此类操作)。* 任何期望列表的操作都可以通过传递子列表视图而不是整个列表来作为范围操作使用。* 例如,以下惯用法从列表中移除一个范围的元素:* <pre>{@code*      list.subList(from, to).clear();* }</pre>* 类似的惯用法可以为 <tt>indexOf</tt> 和 <tt>lastIndexOf</tt> 构建,* 并且 <tt>Collections</tt> 类中的所有算法都可以应用于子列表。<p>** 如果此列表(即支持列表)以任何方式被 <i>结构化修改</i>,除了通过返回的列表,* 返回列表的语义将变得未定义。(结构化修改是指改变此列表大小或以其他方式干扰列表,* 使得正在进行的迭代可能产生不正确的结果。)** @param fromIndex 子列表的低端点(包含)* @param toIndex 子列表的高端点(不包含)* @return 此列表中指定范围的视图* @throws IndexOutOfBoundsException 对于非法的端点索引值*         (<tt>fromIndex &lt; 0 || toIndex &gt; size ||*         fromIndex &gt; toIndex</tt>)*/List<E> subList(int fromIndex, int toIndex);/*** 创建一个 {@link Spliterator} 用于遍历此列表中的元素。** <p>此 {@code Spliterator} 报告 {@link Spliterator#SIZED} 和* {@link Spliterator#ORDERED}。实现应记录额外的特征值。** @implSpec* 默认实现从列表的 {@code Iterator} 创建一个* <em><a href="Spliterator.html#binding">延迟绑定</a></em> 的 {@code Spliterator}。* 该 {@code Spliterator} 继承了列表迭代器的 <em>快速失败</em> 属性。** @implNote* 创建的 {@code Spliterator} 另外报告* {@link Spliterator#SUBSIZED}。** @return 一个遍历此列表中元素的 {@code Spliterator}* @since 1.8*/@Overridedefault Spliterator<E> spliterator() {return Spliterators.spliterator(this, Spliterator.ORDERED);}
}

相关文章:

List 源码翻译

List 源码翻译-jdk1.8 翻译来自 AI 大模型。 全部源码翻译下载 /** 版权所有 (c) 1997, 2014, Oracle 和/或其附属公司。保留所有权利。* ORACLE 专有/机密。使用受许可条款约束。*********************/package java.util;import java.util.function.UnaryOperator;/*** 有序…...

NHANES指标推荐:ALI

文章题目&#xff1a;A cross-sectional study examining the relationship between the advanced lung cancer inflammation index and prostate cancer 中文标题&#xff1a;一项检查晚期肺癌炎症指数与前列腺癌之间关系的横断面研究 发表杂志&#xff1a;Journal of Health…...

ChatGPT与认知科学:人机协同的未来图景

目录 导论&#xff1a;当机器开始“思考”&#xff0c;我们如何理解智能的未来&#xff1f; 第一部分&#xff1a;ChatGPT的技术解密与认知科学基础 第一章&#xff1a;ChatGPT的“芯”事&#xff1a;深入浅出聊技术&#xff0c;洞察认知新启示 1.1 开篇聊两句&#xff1a;…...

数智管理学(十二)

第四节 人工智能参与管理决策的角色 在当今数智化时代&#xff0c;人工智能&#xff08;AI&#xff09;作为一项颠覆性技术&#xff0c;正以前所未有的深度和广度融入企业管理领域&#xff0c;尤其是在决策环节发挥着日益关键的作用。随着大数据的爆炸式增长、算法的不断优化以…...

UE5 Mat HLSL - Load

特性Load()Sample()输入类型整数索引&#xff08;int2/int3&#xff09;浮点 UV 采样器状态&#xff08;SamplerState&#xff09;数据获取精确读取指定位置的原始数据基于 UV 插值和过滤后的数据典型用途精确计算、非过滤访问&#xff08;如物理模拟&#xff09;纹理贴图渲染…...

【Unity笔记】Unity WASD+QE 控制角色移动与转向(含 Shift 加速)实现教程

摘要&#xff1a; 在 Unity 游戏开发中&#xff0c;键盘控制角色的移动与转向是基础功能之一。本文详细讲解如何使用 C# 实现基于 WASD 移动、QE 转向 与 Shift 加速奔跑 的角色控制器&#xff0c;适用于第一人称、第三人称、自由漫游等场景。通过直观的 Transform 控制方法与可…...

HTML5 列表、表格与媒体元素、页面结构分析

1. 列表 无序列表 有序列表 定义列表 列表对比 2. 表格 跨列 跨行 跨行和跨列 3. HTML5的媒体元素 视频元素 注意&#xff1a;autoplay现在很多浏览器不支持了&#xff01; 音频元素 4. 页面结构分析 5. 总结...

Spring Boot 如何实现定时任务

Spring Boot 如何实现定时任务 在现代的微服务架构中&#xff0c;定时任务是一个常见的需求。无论是数据定时同步、定时清理缓存&#xff0c;还是定时发送通知&#xff0c;Spring Boot 提供了非常强大且灵活的定时任务支持。本文将详细介绍如何在 Spring Boot 中实现定时任务&…...

免费开源 PDF 阅读器 自带虚拟打印机功能 多格式兼容

各位办公小能手们&#xff0c;今天咱来聊聊一款超厉害的PDF工具——PDFLite&#xff01; 这PDFLite啊&#xff0c;那可是轻量级、免费又开源的好东西。它能干啥呢&#xff1f;主要就是能读PDF文件&#xff0c;还能转换文件格式&#xff0c;做基础的文档管理。下面咱就说说它的…...

换宽带ip地址会变吗?同一个宽带如何切换ip地址

在当今互联网时代&#xff0c;IP地址作为网络设备的"身份证"&#xff0c;其重要性不言而喻。许多用户在使用宽带时都会遇到这样的疑问&#xff1a;换宽带IP地址会变吗&#xff1f;同一个宽带如何切换IP地址&#xff1f;本文将深入探讨这一问题&#xff0c;帮助读者全…...

第100+41步 ChatGPT学习:R语言实现误判病例分析

本期是《第33步 机器学习分类实战&#xff1a;误判病例分析》的R版本。 尝试使用Deepseek-R1来试试写代码&#xff0c;效果还不错。 下面上R语言代码&#xff0c;以Xgboost为例&#xff1a; # 加载必要的库 library(caret) library(pROC) library(ggplot2) library(xgboost)…...

贝锐蒲公英工业路由器R300A海外版:支持多国4G频段,全球组网

为更好地满足全球部署和企业出海项目的多样化需求&#xff0c;贝锐蒲公英异地组网工业路由器R300A海外版全新上市&#xff0c;并已正式上架速卖通&#xff01;无论是跨国分支机构协同办公&#xff0c;还是海外工厂设备远程运维&#xff0c;R300A海外版都能为企业提供灵活、高性…...

字符串索引、幻读的解决方法

1. 给字符串加索引 1.1. 前缀索引vs完整索引 假设有一个支持邮箱登录的系统&#xff0c;用户表定义如下&#xff1a; CREATE TABLE SUser(ID BIGINT UNSIGNED PRIMARY KEY,email VARCHAR(64),... ) ENGINEInnoDB; 为了根据邮箱查询用户信息&#xff0c;常用的查询语句如下&…...

[特殊字符] 超强 Web React版 PDF 阅读器!支持分页、缩放、旋转、全屏、懒加载、缩略图!

在现代 Web 项目中&#xff0c;PDF 浏览是一个常见需求&#xff1a;从政务公文到合同协议&#xff0c;PDF 文件无处不在。但很多方案要么体验不佳&#xff0c;要么集成复杂。今天&#xff0c;我给大家带来一个开箱即用、功能全面的 PDF 预览组件 —— [PDFView](https://www.np…...

wireshark分析国标rtp ps流

1.将抓到的tcp或者udp视频流使用decode as 转为rtp包 2.电话->RTP->RTP播放器 选择Export 里面的Payload 就可以导出原始PS流...

jetpack compose 界面刷新的几种方式 如何避免无效的界面刷新

界面刷新的几种方式 在 Jetpack Compose 中&#xff0c;界面刷新主要依赖于数据的响应式变化。以下是几种常见的界面刷新方式及其原理&#xff1a; 1. 使用 MutableState&#xff08;基础方式&#xff09; 通过 mutableStateOf 创建可观察的状态&#xff0c;状态变化时会触发…...

【STM32+LAN9252+HAL库】EtherCAT从站搭建 保姆级教程

目录 一、生成协议栈及XML文件 二、使用stm32CuboMX配置外设 三、协议栈移植 鉴于本人对EtherCAT的掌握程度十分有限&#xff0c;这篇文章仅作为我搭建基础从站的过程记录不做更多讲解。本文内容主要为SPI模式的基础搭建&#xff0c;更多深入的学习资料和细节&#xff0c;大家…...

【harbor】--基础使用

推送 不同的管理工具都有说明 以docker为例 # 第一步--打标签 docker tag SOURCE_IMAGE[:TAG] 192.168.121.201:801/haohao_fist/REPOSITORY[:TAG] # 第二步--推送 docker push 192.168.121.201:801/haohao_fist/REPOSITORY[:TAG]默认push推送为https push会失败 解决办法…...

JAVA学习 DAY1 初识JAVA

本系列可作为JAVA学习系列的笔记&#xff0c;文中提到的一些练习的代码&#xff0c;小编会将代码复制下来&#xff0c;大家复制下来就可以练习了&#xff0c;方便大家学习。 点赞关注不迷路&#xff01;您的点赞、关注和收藏是对小编最大的支持和鼓励&#xff01; 系列文章目录…...

*JavaScript中的Symbol类型:唯一标识符的艺术

JavaScript中的Symbol类型&#xff1a;唯一标识符的艺术 在JavaScript的世界中&#xff0c;数据类型一直是开发者关注的焦点。从基本的Number、String到后来的Symbol&#xff0c;每一种类型的引入都为语言本身注入了新的活力。而今天我们要聊的主角——Symbol&#xff0c;是ES…...

Vue能启动但访问空白?并报”export ‘default’ (imported as ‘Vue’) was not found in ‘vue’

场景 如图&#xff0c;vue项目的node_modules下载顺利&#xff0c;启动也顺利&#xff0c;但是访问却为空白页面 虽然页面是空白&#xff0c;但是通过浏览器控制台可以看出并非简单的空白&#xff0c;确实有不兼容问题在里面 分析问题 从上图浏览器控制台可以看出&#xff0c…...

Electron-vite【实战】MD 编辑器 -- 系统菜单(含菜单封装,新建文件,打开文件,打开文件夹,保存文件,退出系统)

最终效果 整体架构 src/main/index.ts import { createMenu } from ./menu在 const mainWindow 后 // 加载菜单createMenu(mainWindow)src/main/menu.ts import { BrowserWindow, Menu, MenuItem, MenuItemConstructorOptions, dialog, shell } from electron import fs from…...

如何将 PDF 文件中的文本提取为 YAML(教程)

这篇博客文章将向你展示如何将 PDF 转换为 YAML&#xff0c;通过提取带有结构标签的标记内容来实现。 什么是结构化 PDF&#xff1f; 一些 PDF 文件包含结构化内容&#xff0c;也称为带标签&#xff08;tagged&#xff09;或标记内容&#xff08;marked content&#xff09;&…...

【Docker系列】Docker 容器内安装`ps`命令

博客目录 一、为什么需要在 Docker 容器中安装ps命令二、不同 Linux 发行版的安装方法1. Alpine Linux 镜像的安装方法2. Debian/Ubuntu 镜像的安装方法3. CentOS/RHEL 镜像的安装方法 三、验证安装与基本使用四、永久解决方案&#xff1a;修改 Dockerfile1. Alpine 基础镜像的…...

Netty 实战篇:为 Netty RPC 框架增加超时控制与重试机制,防止系统雪崩

本文介绍如何在自研 Netty RPC 框架中实现超时控制与重试机制。合理的超时策略可以避免调用卡死&#xff0c;重试机制可以提升调用成功率&#xff0c;在高可用系统中不可或缺。 一、为什么要有超时和重试&#xff1f; RPC 是跨进程调用&#xff0c;失败是常态。常见问题包括&a…...

PDFGear——完全免费且功能强大的PDF处理软件

关键词 &#xff1a;PDFGear、免费、跨平台、多功能、OCR 概要 &#xff1a;PDFGear是一款完全免费且功能强大的PDF处理软件&#xff0c;支持Windows、macOS、iOS和Android等多平台使用。它集PDF阅读、编辑、格式转换、OCR识别及AI智能助手于一体&#xff0c;满足用户多样化文档…...

华为OD机试真题——生成哈夫曼树(2025A卷:100分)Java/python/JavaScript/C/C++/GO六种最佳实现

2025 A卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《生成…...

大厂前端研发岗位设计的30道Webpack面试题及解析

文章目录 一、基础核心二、配置进阶三、性能优化四、Loader原理五、Plugin机制六、高级应用七、工程化实战八、原理深挖九、异常处理十、综合场景一、基础核心 Webpack的核心概念是什么? 解析:入口(entry)、输出(output)、加载器(loader)、插件(plugins)、模式(mode)。Loader…...

Oracle中EXISTS NOT EXISTS的使用

目录 1.IN与EXISTS EXISTS用法总结 2.NOT IN与NOT EXISTS 3.not in 中 null的用法 4.EXISTS和IN的区别 (面试常问) 1.IN与EXISTS 示例&#xff1a;在 DEPT 表中找出在 EMP 表中存在的部门编号&#xff1b; 方法一&#xff1a;使用in select DEPTNO from DEPT where D…...

01.认识Kubernetes

什么是Kubernets 套用官方文档对Kubernetes的定义&#xff0c;翻译成中文的意思是&#xff1a; Kubernetes&#xff0c;也称为k8&#xff0c;是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。 它将组成应用程序的容器分组为逻辑单元&#xff0c;以便于管理和发现…...