9
9
/**
10
10
* linkedList based implementation of queue.
11
11
* This implementation is not thread safe and need exclusive thread safety measures from the client.
12
+ *
12
13
* @param <T>
13
14
*/
14
15
public class GeneralQueue <T > implements Queue <T > {
15
16
16
17
private LinkedList <T > queue ;
17
18
private Iterator <T > itr ;
18
19
19
- //Overloaded constructor to create queue of specific size
20
+ /**
21
+ * Overloaded constructor to create queue of specific size
22
+ */
20
23
public GeneralQueue () {
21
24
queue = new LinkedList <>();
22
25
}
23
26
24
27
@ Override
25
28
public boolean add (T t ) {
26
29
27
- if (queue == null ) {
30
+ if (queue == null ) {
28
31
throw new IllegalStateException ();
29
32
}
30
- if (t == null ){
31
- throw new NullPointerException ();
33
+ if (t == null ) {
34
+ throw new NullPointerException ();
32
35
}
33
36
queue .add (t );
34
37
return true ;
35
38
}
36
39
37
40
@ Override
38
41
public boolean remove (T t ) {
39
- if (null == queue ){
42
+ if (null == queue ) {
40
43
throw new NullPointerException ();
41
44
}
42
- if (queue .isEmpty ()) {
45
+ if (queue .isEmpty ()) {
43
46
throw new NoSuchElementException ();
44
47
}
45
48
queue .remove (t );
@@ -48,18 +51,12 @@ public boolean remove(T t) {
48
51
49
52
@ Override
50
53
public boolean isEmpty () {
51
-
52
- if (null == queue || queue .size () == 0 ){
53
- return true ;
54
- }
55
-
56
- return false ;
54
+ return null == queue || queue .size () == 0 ;
57
55
}
58
56
59
57
@ Override
60
58
public Iterator <T > iterator () {
61
-
62
- if (queue == null ) {
59
+ if (queue == null ) {
63
60
return null ;
64
61
}
65
62
itr = queue .iterator ();
@@ -68,10 +65,10 @@ public Iterator<T> iterator() {
68
65
69
66
@ Override
70
67
public boolean offer (T t ) {
71
- if (null == queue ) {
68
+ if (null == queue ) {
72
69
return false ;
73
70
}
74
- if (t == null ){
71
+ if (t == null ) {
75
72
throw new NullPointerException ();
76
73
}
77
74
queue .add (t );
@@ -80,18 +77,16 @@ public boolean offer(T t) {
80
77
81
78
@ Override
82
79
public T poll () {
83
-
84
- if (queue == null || queue .isEmpty ()){
85
- return null ;
80
+ if (queue == null || queue .isEmpty ()) {
81
+ return null ;
86
82
}
87
83
88
84
return queue .pollFirst ();
89
85
}
90
86
91
87
@ Override
92
88
public T element () {
93
-
94
- if (queue == null || queue .isEmpty ()) {
89
+ if (queue == null || queue .isEmpty ()) {
95
90
throw new NoSuchElementException ();
96
91
}
97
92
@@ -100,37 +95,31 @@ public T element() {
100
95
101
96
@ Override
102
97
public T peek () {
103
- if (null == queue || queue .size () == 0 ){
104
- return null ;
98
+ if (null == queue || queue .size () == 0 ) {
99
+ return null ;
105
100
}
106
101
107
102
return queue .peekFirst ();
108
103
}
109
104
110
105
@ Override
111
106
public boolean hasNext () {
112
-
113
- if (itr .hasNext ()){
114
- return true ;
115
- }
116
- return false ;
107
+ return itr .hasNext ();
117
108
}
118
109
119
110
@ Override
120
111
public T next () {
121
-
122
112
return itr .next ();
123
113
}
124
114
125
115
@ Override
126
116
public Object [] toArray () {
127
-
128
117
Object [] elements = {};
129
- if (null == queue || queue .isEmpty ()){
118
+ if (null == queue || queue .isEmpty ()) {
130
119
return elements ;
131
120
}
132
121
elements = new Object [queue .size ()];
133
- for (int i = 0 ; i < queue .size ();i ++){
122
+ for (int i = 0 ; i < queue .size (); i ++) {
134
123
elements [i ] = queue .get (i );
135
124
}
136
125
@@ -139,12 +128,9 @@ public Object[] toArray() {
139
128
140
129
@ Override
141
130
public int size () {
142
- if (null == queue || queue .isEmpty ()) {
131
+ if (null == queue || queue .isEmpty ()) {
143
132
return 0 ;
144
133
}
145
-
146
134
return queue .size ();
147
135
}
148
-
149
-
150
136
}
0 commit comments