实现并发链接请求应用编程接口的 Java 程序
原文:https://www . geesforgeks . org/Java-程序到实现-concurrentlinkedeque-API/
Java 中的concurrentlinkedeque类是一个无界的并发 deque,它将其元素存储为链接节点,其中每个节点包含前一个和下一个节点的地址。属于 java.util.concurrent 包。这个类是 Java 集合框架的成员。它还扩展了对象和抽象集合类。
并发链接请求应用编程接口的特性
- 它不允许空元素。
- 迭代器弱一致。
- 并发插入、移除和访问操作跨多个线程安全执行,因此是线程安全的。
- 大小方法不是一个恒定时间的操作
实现接口
1\. Serializable
2\. Iterable<E>
3\. Collection<E>
4\. Deque<E>
5\. Queue<E>
参数: E —集合中元素的类型
语法:
public class ConcurrentLinkedDeque<E>
extends AbstractCollection<E>
implements Deque<E>, Serializable
施工人员:
- public ConcurrentLinkedDeque():它创建一个空的 deque。
- public ConcurrentLinkedDeque(集合 c):它创建一个包含集合元素的 Deque。
方法:
| 方法 | 类型 | 描述 | | --- | --- | --- | | 添加(英、法) | 布尔 | 在文件尾部插入一个元素 | | addAll(集合〔t0〕c) | 布尔 | 插入指定集合中的所有元素 | | addFirst(消歧义) | 空的 | 在背景的前面添加一个元素 | | addLast(和 e) | 空的 | 在 deque 的最后添加一个元素 | | 清除() | 空的 | 从列表中移除所有元素 | | 包含(对象 o) | 布尔 | 如果目标包含对象 0,则返回真 | | 下降畸胎() | 迭代器 | 以相反的顺序返回 deque 中元素的迭代器。 | | 元素() | E | 取回了德格的头,但没有拿走 | | getFirst() | E | 检索数据的第一个元素 | | getLast() | E | 检索数据的最后一个元素 | | isEmpty() | 布尔 | 如果目标不包含任何元素,则返回 true | | 迭代器() | 迭代器 | 返回 deque 中元素的迭代器 | | peek() | E | 取回了德格的头,但没有拿走 | | 民意测验() | E | 检索并删除标题 | | 推动 | 空的 | 将元素推送到由 deque 表示的堆栈上 | | 流行音乐() | E | 从由 deque 表示的堆栈中弹出一个元素。 | | 移除() | E | 检索并删除队列的头 | | 大小() | (同 Internationalorganizations)国际组织 | 返回目标的大小 | | toarray() | 对象[] | 返回包含所有元素的数组 |实施:
例
Java 语言(一种计算机语言,尤用于创建网站)
// Java Program to Implement ConcurrentLinkedDeque API
// Importing all classes from
// java.util package
import java.util.*;
import java.util.concurrent.*;
// Class
class GFG {
// Main driver method
public static void main(String[] args)
{
// Object 1
// Create a ConcurrentLinkedDeque object
// Declaring object of Integer type
ConcurrentLinkedDeque<Integer> dq
= new ConcurrentLinkedDeque<Integer>();
// Adding element to the front
// using addFirst() method
// Custom entry
dq.add(89);
// Adding an element in the last
// using addLast() method
// Custom entry
dq.addLast(18);
// Adding an element to the front
// Custom inputs
dq.addFirst(10);
dq.add(45);
// Displaying the current ConcurrentLinkedDeque
System.out.println("ConcurrentLinkedDeque1 : "
+ dq);
// Object 2
// Creating a ConcurrentLinkedDeque object
// using ConcurrentLinkedDeque(Collection c)
// Declaring object of Integer type
ConcurrentLinkedDeque<Integer> ldq
= new ConcurrentLinkedDeque<Integer>(dq);
// Displaying the current ConcurrentLinkedDeque
System.out.println("ConcurrentLinkedDeque2 : "
+ ldq);
// Print the size of the deque
// using size() method
System.out.println("Size: " + ldq.size());
// Removing all the elements from the deque
// using clear() method
ldq.clear();
// Checking whether the ConcurrentLinkedDeque object
// is empty or not
System.out.println("Is Deque empty: "
+ ldq.isEmpty());
// Removing the head of deque of object1
dq.remove();
// Iterating over elements and
// printing deque of object1
Iterator it = dq.iterator();
// Condition check using hasNext() which hold
// true till single element remaining in List
while (it.hasNext())
// Print all the elements
System.out.print(it.next() + " ");
}
}
Output
ConcurrentLinkedDeque1: [10, 89, 18, 45]
ConcurrentLinkedDeque2: [10, 89, 18, 45]
Size: 4
Is Deque empty: true
89 18 45
版权属于:月萌API www.moonapi.com,转载请注明出处