IQueue 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
设计用于在处理之前保存元素的集合。
[Android.Runtime.Register("java/util/Queue", "", "Java.Util.IQueueInvoker")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public interface IQueue : IDisposable, Java.Interop.IJavaPeerable, Java.Util.ICollection
[<Android.Runtime.Register("java/util/Queue", "", "Java.Util.IQueueInvoker")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
type IQueue = interface
interface ICollection
interface IIterable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 派生
- 属性
- 实现
注解
设计用于在处理之前保存元素的集合。 除了基本 Collection 操作,队列还提供额外的插入、提取和检查操作。 其中每个方法都以两种形式存在:一种在操作失败时引发异常,另一种方法返回一个特殊值( null 或者 false,具体取决于操作)。 插入操作的后一种形式专门用于容量受限 Queue 实现;在大多数实现中,插入操作无法失败。
<table class=“striped”>caption summary of Queue methods</caption><thead><tr><td/td><>< th scope=“col” style=“font-weight:normal; font-style:italic”>Throws exception</th><scope=“col” style=“font-weight:normal; font-style:italic”>Returns special value</th<>/tr></thead<>tbody><tr<>th scope=“row”>Insert</th<>><td>#add(Object) add(e)</td td<>/td>#offer(Object) offer(e)<<>/tr><><th scope=“row”>Remove</th><td<>#remove() remove()/td td#poll() poll()<>></<>tr><tr<>th scope=“row”>Examine</th<>td>#element() element()</<>td td td/><td#peek() peek()></td/><tbody></table>
队列通常不一定按 FIFO(先出先出)的方式对元素进行排序。 例外之一是优先级队列,这些队列根据提供的比较器或元素的自然排序对元素进行排序,以及对元素 LIFO 进行排序的 LIFO 队列(或堆栈)(最后先出)。 无论使用何种排序, <队列的 em>head</em> 都是通过调用 #remove() 或 #poll()删除的元素。 在 FIFO 队列中,所有新元素都插入到 <队列的 em>tail</em> 中。 其他类型的队列可能使用不同的放置规则。 每个 Queue 实现都必须指定其排序属性。
如果可能,该方法 #offer offer 将插入元素,否则返回 false。 这与 java.util.Collection#add Collection.add 方法不同,该方法只能通过引发未选中的异常来添加元素。 此方法 offer 设计用于在故障正常时使用,而不是异常情况,例如,在固定容量(或 “ 中)bounded“)队列。
和#remove()#poll()方法删除并返回队列的头。 从队列中删除的元素正是队列排序策略的函数,该策略不同于实现与实现。 和remove()poll()方法仅在队列为空时的行为不同:该方法remove()引发异常,而poll()该方法返回null。
和#element()#peek()方法返回队列的头,但不删除。
该 Queue 接口不定义 阻塞队列方法,这些方法在并发编程中很常见。 这些方法(等待元素出现或空间变为可用)在接口中 java.util.concurrent.BlockingQueue 定义,该接口扩展了此接口。
Queue 实现通常不允许插入 null 元素,尽管某些实现(如 LinkedList)不允许插入 null。 即使在允许它的实现中, null 也不应插入到某个 Queue实现中,因为 null 该方法也用作特殊返回值 poll ,以指示队列不包含任何元素。
Queue 实现通常不定义基于元素的方法 equals 版本, hashCode 而是从类 Object继承基于标识的版本,因为基于元素的相等性并不总是为具有相同元素但不同的排序属性的队列定义良好。
在 1.5 中添加。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
属性
| 名称 | 说明 |
|---|---|
| Handle |
获取基础 Android 对象的 JNI 值。 (继承自 IJavaObject) |
| IsEmpty |
如果不包含 |
| JniIdentityHashCode |
返回包装实例的值 |
| JniManagedPeerState |
托管对等方的状态。 (继承自 IJavaPeerable) |
| JniPeerMembers |
成员访问和调用支持。 (继承自 IJavaPeerable) |
| PeerReference |
返回JniObjectReference包装的Java对象实例。 (继承自 IJavaPeerable) |
方法
| 名称 | 说明 |
|---|---|
| Add(Object) |
如果可以立即执行此操作而不违反容量限制,则向此队列插入指定的元素,并在成功后返回 |
| AddAll(ICollection) |
将指定集合中的所有元素添加到此集合(可选操作)。 (继承自 ICollection) |
| Clear() |
从此集合中删除所有元素(可选操作)。 (继承自 ICollection) |
| Contains(Object) |
返回 |
| ContainsAll(ICollection) |
如果 |
| Disposed() |
在释放实例时调用。 (继承自 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果没有对此实例的未完成引用,则调用 |
| Element() |
检索此队列的头,但不删除。 |
| Equals(Object) |
将指定的对象与此集合进行比较,以便相等。 (继承自 ICollection) |
| Finalized() |
在实例完成时调用。 (继承自 IJavaPeerable) |
| ForEach(IConsumer) |
对每个元素执行给定操作,直到处理完所有元素 |
| GetHashCode() |
返回此集合的哈希代码值。 (继承自 ICollection) |
| Iterator() |
返回此集合中元素的迭代器。 (继承自 ICollection) |
| Offer(Object) |
如果可以立即执行此操作而不违反容量限制,请将指定的元素插入此队列中。 |
| Peek() |
检索但不删除此队列的头,或返回 |
| Poll() |
检索和删除此队列的头,或返回 |
| Remove() |
检索并删除此队列的头。 |
| Remove(Object) |
从此集合中删除指定元素的单个实例(如果存在)(可选操作)。 (继承自 ICollection) |
| RemoveAll(ICollection) |
删除指定集合中包含的所有此集合元素(可选操作)。 (继承自 ICollection) |
| RemoveIf(IPredicate) |
删除满足给定谓词的此集合的所有元素。 (继承自 ICollection) |
| RetainAll(ICollection) |
仅保留指定集合中包含的此集合中的元素(可选操作)。 (继承自 ICollection) |
| SetJniIdentityHashCode(Int32) |
设置由 |
| SetJniManagedPeerState(JniManagedPeerStates) |
设计用于在处理之前保存元素的集合。 (继承自 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
设置由 |
| Size() |
返回此集合中的元素数。 (继承自 ICollection) |
| Spliterator() |
|
| ToArray() |
返回一个数组,其中包含此集合中的所有元素。 (继承自 ICollection) |
| ToArray(IIntFunction) |
返回包含此集合中的所有元素的数组,该数组使用提供的 |
| ToArray(Object[]) |
返回一个数组,其中包含此集合中的所有元素;返回的数组的运行时类型是指定数组的运行时类型。 (继承自 ICollection) |
| UnregisterFromRuntime() |
取消注册此实例,使运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。 (继承自 IJavaPeerable) |
显式接口实现
| 名称 | 说明 |
|---|---|
| IIterable.Spliterator() |
在此集合中的元素上创建一个 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
设计用于在处理之前保存元素的集合。 |
| ToEnumerable(IIterable) |
设计用于在处理之前保存元素的集合。 |
| ToEnumerable<T>(IIterable) |
设计用于在处理之前保存元素的集合。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |