Skip to content

Commit d778a00

Browse files
[Term Entry] Java Queue: clear() (#7541)
* [Term Entry] Java Queue: clear() * Update content/java/concepts/queue/terms/clear/clear.md * Update content/java/concepts/queue/terms/clear/clear.md * Update content/java/concepts/queue/terms/clear/clear.md * Update content/java/concepts/queue/terms/clear/clear.md * Update content/java/concepts/queue/terms/clear/clear.md * Update content/java/concepts/queue/terms/clear/clear.md ---------
1 parent b636b8a commit d778a00

File tree

1 file changed

+227
-0
lines changed
  • content/java/concepts/queue/terms/clear

1 file changed

+227
-0
lines changed
Lines changed: 227 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,227 @@
1+
---
2+
Title: 'clear()'
3+
Description: 'Removes all elements from a Java Queue making it empty.'
4+
Subjects:
5+
- 'Code Foundations'
6+
- 'Computer Science'
7+
Tags:
8+
- 'Collections'
9+
- 'Data Structures'
10+
- 'Methods'
11+
- 'Queues'
12+
CatalogContent:
13+
- 'learn-java'
14+
- 'paths/computer-science'
15+
---
16+
17+
The **`clear()`** method in Java [Queue](https://www.codecademy.com/resources/docs/java/queue) removes all elements from the queue, making it completely empty. This method is inherited from the [Collection](https://www.codecademy.com/resources/docs/java/collection) interface and provides a convenient way to reset a queue without creating a new instance.
18+
19+
## Syntax
20+
21+
```pseudo
22+
queueName.clear()
23+
```
24+
25+
**Parameters:**
26+
27+
- This method does not take any parameters.
28+
29+
**Return value:**
30+
31+
- The method does not return any value (`void`).
32+
33+
## Example 1: Basic Queue Clear
34+
35+
This example demonstrates the fundamental usage of the `clear()` method with a [LinkedList](https://www.codecademy.com/resources/docs/java/linked-list) implementation of Queue:
36+
37+
```java
38+
import java.util.LinkedList;
39+
import java.util.Queue;
40+
41+
public class QueueClearBasic {
42+
public static void main(String[] args) {
43+
// Create a queue using LinkedList implementation
44+
Queue<String> queue = new LinkedList<>();
45+
46+
// Add elements to the queue
47+
queue.offer("First");
48+
queue.offer("Second");
49+
queue.offer("Third");
50+
queue.offer("Fourth");
51+
52+
// Display the original queue
53+
System.out.println("Original queue: " + queue);
54+
System.out.println("Queue size before clear: " + queue.size());
55+
56+
// Clear all elements from the queue
57+
queue.clear();
58+
59+
// Display the queue after clearing
60+
System.out.println("Queue after clear: " + queue);
61+
System.out.println("Queue size after clear: " + queue.size());
62+
}
63+
}
64+
```
65+
66+
The output of this code is:
67+
68+
```shell
69+
Original queue: [First, Second, Third, Fourth]
70+
Queue size before clear: 4
71+
Queue after clear: []
72+
Queue size after clear: 0
73+
```
74+
75+
This example creates a queue, adds four string elements, displays the original content, clears the queue, and then shows the empty result. The `clear()` method removes all elements but keeps the queue structure intact for future use.
76+
77+
## Example 2: Task Processing System
78+
79+
This example illustrates how `clear()` can be utilized in a task processing system to reset the task queue after completing a batch of operations:
80+
81+
```java
82+
import java.util.LinkedList;
83+
import java.util.Queue;
84+
85+
public class TaskProcessingSystem {
86+
public static void main(String[] args) {
87+
// Create a task queue
88+
Queue<String> taskQueue = new LinkedList<>();
89+
90+
// Add tasks to the queue
91+
taskQueue.offer("Process Payment");
92+
taskQueue.offer("Send Email");
93+
taskQueue.offer("Update Database");
94+
taskQueue.offer("Generate Report");
95+
taskQueue.offer("Backup Data");
96+
97+
System.out.println("Tasks in queue: " + taskQueue);
98+
System.out.println("Total tasks: " + taskQueue.size());
99+
100+
// Process all tasks
101+
while (!taskQueue.isEmpty()) {
102+
String currentTask = taskQueue.poll();
103+
System.out.println("Processing: " + currentTask);
104+
}
105+
106+
System.out.println("All tasks completed. Queue status: " + taskQueue);
107+
108+
// Add new batch of tasks
109+
taskQueue.offer("Daily Cleanup");
110+
taskQueue.offer("System Maintenance");
111+
112+
System.out.println("New tasks added: " + taskQueue);
113+
114+
// Clear the queue for emergency reset
115+
System.out.println("Emergency reset triggered!");
116+
taskQueue.clear();
117+
118+
System.out.println("Queue after emergency clear: " + taskQueue);
119+
System.out.println("Ready for new tasks: " + taskQueue.isEmpty());
120+
}
121+
}
122+
```
123+
124+
The output of this code is:
125+
126+
```shell
127+
Tasks in queue: [Process Payment, Send Email, Update Database, Generate Report, Backup Data]
128+
Total tasks: 5
129+
Processing: Process Payment
130+
Processing: Send Email
131+
Processing: Update Database
132+
Processing: Generate Report
133+
Processing: Backup Data
134+
All tasks completed. Queue status: []
135+
New tasks added: [Daily Cleanup, System Maintenance]
136+
Emergency reset triggered!
137+
Queue after emergency clear: []
138+
Ready for new tasks: true
139+
```
140+
141+
This example demonstrates a realistic scenario where a task processing system uses `clear()` for emergency resets or batch completions. The method provides a quick way to empty the queue without affecting its functionality.
142+
143+
## Example 3: Cache Management System
144+
145+
This example illustrates how `clear()` is useful in cache management systems where periodic cache clearing is necessary for memory optimization:
146+
147+
```java
148+
import java.util.PriorityQueue;
149+
import java.util.Queue;
150+
151+
public class CacheManagementSystem {
152+
public static void main(String[] args) {
153+
// Create a priority queue for cache management
154+
Queue<Integer> cacheQueue = new PriorityQueue<>();
155+
156+
// Simulate adding cache entries with priority values
157+
cacheQueue.offer(10); // Low priority
158+
cacheQueue.offer(5); // High priority
159+
cacheQueue.offer(15); // Lower priority
160+
cacheQueue.offer(3); // Highest priority
161+
cacheQueue.offer(12); // Medium priority
162+
163+
System.out.println("Cache entries (priority order): " + cacheQueue);
164+
System.out.println("Cache size: " + cacheQueue.size());
165+
System.out.println("Highest priority item: " + cacheQueue.peek());
166+
167+
// Simulate cache usage
168+
System.out.println("\nProcessing cache entries:");
169+
Queue<Integer> tempQueue = new PriorityQueue<>(cacheQueue);
170+
while (!tempQueue.isEmpty()) {
171+
System.out.println("Accessing cache entry: " + tempQueue.poll());
172+
}
173+
174+
// Check memory usage and clear cache if needed
175+
boolean memoryThresholdExceeded = true; // Simulated condition
176+
177+
if (memoryThresholdExceeded) {
178+
System.out.println("\nMemory threshold exceeded. Clearing cache...");
179+
cacheQueue.clear();
180+
System.out.println("Cache cleared successfully.");
181+
System.out.println("Current cache size: " + cacheQueue.size());
182+
System.out.println("Cache is empty: " + cacheQueue.isEmpty());
183+
184+
// Cache is now ready for new entries
185+
System.out.println("\nCache system ready for new entries.");
186+
}
187+
}
188+
}
189+
```
190+
191+
The output of this code is:
192+
193+
```shell
194+
Cache entries (priority order): [3, 5, 15, 10, 12]
195+
Cache size: 5
196+
Highest priority item: 3
197+
198+
Processing cache entries:
199+
Accessing cache entry: 3
200+
Accessing cache entry: 5
201+
Accessing cache entry: 10
202+
Accessing cache entry: 12
203+
Accessing cache entry: 15
204+
205+
Memory threshold exceeded. Clearing cache...
206+
Cache cleared successfully.
207+
Current cache size: 0
208+
Cache is empty: true
209+
210+
Cache system ready for new entries.
211+
```
212+
213+
The following text explains how the `clear()` method works with different Queue implementations, such as [PriorityQueue](https://www.codecademy.com/resources/docs/java/priorityqueue). This method is particularly useful in cache management systems where there is a need to periodically clear cached data to free up memory.
214+
215+
## Frequently Asked Questions
216+
217+
### 1. Does the `clear()` method destroy the queue object?
218+
219+
No, the `clear()` method only removes all elements from the queue but preserves the queue structure. You can continue using the same queue instance after clearing it.
220+
221+
### 2. What is the time complexity of the `clear()` method?
222+
223+
The time complexity is typically `O(n)` where n is the number of elements in the queue, as it needs to remove each element. However, some implementations may optimize this operation.
224+
225+
### 3. Can I use `clear()` on thread-safe queue implementations?
226+
227+
Yes, the `clear()` method works with thread-safe queue implementations like `LinkedBlockingQueue` and `ConcurrentLinkedQueue`. The operation remains thread-safe in these implementations.

0 commit comments

Comments
 (0)