3
3
import java .util .ArrayList ;
4
4
import java .util .HashMap ;
5
5
import java .util .HashSet ;
6
+ import java .util .Iterator ;
6
7
import java .util .LinkedHashMap ;
7
8
import java .util .LinkedHashSet ;
8
9
import java .util .LinkedList ;
9
10
import java .util .List ;
10
11
import java .util .Map ;
12
+ import java .util .Queue ;
11
13
import java .util .Set ;
12
14
import java .util .TreeMap ;
13
15
import java .util .TreeSet ;
16
+ import java .util .concurrent .ArrayBlockingQueue ;
17
+ import java .util .ListIterator ;
18
+
14
19
15
20
/**
16
21
*
@@ -25,6 +30,8 @@ public static void main(String[] args) {
25
30
ArrayListVsLinkedList ();
26
31
HashMapLinkedHashMapTreeMapTest ();
27
32
SetsTest ();
33
+ QueueTest ();
34
+ IteratorTest ();
28
35
}
29
36
30
37
private static final void ArrayListVsLinkedList () {
@@ -183,4 +190,71 @@ private static void SetsTest() {
183
190
System .out .println ("-------------------------------------------" );
184
191
185
192
}
193
+
194
+ private static void QueueTest () {
195
+ Queue <Integer > arrayBlockingQueue = new ArrayBlockingQueue <Integer >(3 );
196
+ try {
197
+ arrayBlockingQueue .add (10 );
198
+ arrayBlockingQueue .add (20 );
199
+ arrayBlockingQueue .add (30 );
200
+ } catch (IllegalStateException e ) {
201
+ e .printStackTrace ();
202
+ }
203
+
204
+ System .out .println (arrayBlockingQueue );
205
+ Integer val = arrayBlockingQueue .remove ();
206
+ System .out .println (val );
207
+ System .out .println (arrayBlockingQueue );
208
+ val = arrayBlockingQueue .remove ();
209
+ System .out .println (val );
210
+ System .out .println (arrayBlockingQueue );
211
+ val = arrayBlockingQueue .remove ();
212
+ System .out .println (val );
213
+ }
214
+
215
+ private static void IteratorTest () {
216
+ LinkedList <String > animals = new LinkedList <String >();
217
+ animals .add ("fox" );
218
+ animals .add ("meerkat" );
219
+ animals .add ("guinea pig" );
220
+ animals .add ("rabbit" );
221
+ animals .add ("turtle" );
222
+
223
+ System .out .println ("\" Old\" , classical way of iteration, removing \" guinea pig\" :" );
224
+ System .out .println ("-------------------------------------------" );
225
+ Iterator <String > it = animals .iterator ();
226
+ while (it .hasNext ()) {
227
+ String animal = it .next ();
228
+ System .out .println (animal );
229
+ if (animal .equals ("guinea pig" )) {
230
+ it .remove ();
231
+ }
232
+ }
233
+ System .out .println ("-------------------------------------------" );
234
+ System .out .println ("Modern way of iteration (>=Java5) - cannot remove element during iteration:" );
235
+ System .out .println ("(animals.remove() would throw an exception)" );
236
+ System .out .println ("-------------------------------------------" );
237
+ for (String animal : animals ) {
238
+ System .out .println (animal );
239
+ }
240
+ System .out .println ("-------------------------------------------" );
241
+ System .out .println ("Adding items to a list during iteration: ListIterator" );
242
+ System .out .println ("-------------------------------------------" );
243
+ ListIterator <String > lit = animals .listIterator ();
244
+ while (lit .hasNext ()) {
245
+ String animal = lit .next ();
246
+ System .out .println (animal );
247
+ if (animal .equals ("turtle" )) {
248
+ lit .add ("giraffe" );
249
+ }
250
+ }
251
+ System .out .println ("-------------------------------------------" );
252
+ System .out .println ("After adding \" giraffe\" " );
253
+ System .out .println ("-------------------------------------------" );
254
+ lit = animals .listIterator ();
255
+ while (lit .hasNext ()) {
256
+ System .out .println (lit .next ());
257
+ }
258
+ System .out .println ("-------------------------------------------" );
259
+ }
186
260
}
0 commit comments