Skip to content

Commit 9d8d0bd

Browse files
author
exuuguu
committed
solve complie warning.
1 parent 1c2a4c5 commit 9d8d0bd

File tree

1 file changed

+39
-37
lines changed

1 file changed

+39
-37
lines changed

data-structure/src/main/java/com/blaxswan/algorithm/heap/BinaryHeapArray.java

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.blaxswan.algorithm.heap;
22

3-
import sun.reflect.generics.reflectiveObjects.NotImplementedException;
4-
53
import java.util.ArrayList;
64
import java.util.Arrays;
75
import java.util.List;
@@ -15,14 +13,14 @@ public class BinaryHeapArray<T extends Comparable<T>> implements BinaryHeap<T> {
1513

1614
private OrderingType type = OrderingType.MIN;
1715
private int size = 0;
16+
@SuppressWarnings("unchecked")
1817
private T[] array = (T[]) new Comparable[MINIMUM_SIZE];
1918

2019
public BinaryHeapArray() {
2120

2221
size = 0;
2322
}
2423

25-
2624
public BinaryHeapArray(OrderingType type) {
2725
this();
2826
this.type = type;
@@ -47,24 +45,27 @@ public boolean add(T value) {
4745

4846
@Override
4947
public T remove(T value) {
50-
if (array.length == 0) return null;
48+
if (array.length == 0)
49+
return null;
5150
for (int i = 0; i < size; i++) {
5251
T node = array[i];
53-
if (node.equals(value)) return remove(i);
52+
if (node.equals(value))
53+
return remove(i);
5454
}
5555
return null;
5656
}
5757

5858
private T remove(int index) {
59-
if (index<0 || index>=size) return null;
59+
if (index < 0 || index >= size)
60+
return null;
6061

6162
T t = array[index];
6263
array[index] = array[--size];
6364
array[size] = null;
6465

6566
heapDown(index);
6667

67-
int shrinkSize = array.length>>1;
68+
int shrinkSize = array.length >> 1;
6869
if (shrinkSize >= MINIMUM_SIZE && size < shrinkSize)
6970
shrink();
7071

@@ -74,7 +75,7 @@ private T remove(int index) {
7475
private void heapUp(int idx) {
7576
int nodeIndex = idx;
7677
T value = this.array[nodeIndex];
77-
if (value==null)
78+
if (value == null)
7879
return;
7980

8081
while (nodeIndex >= 0) {
@@ -85,8 +86,7 @@ private void heapUp(int idx) {
8586
T parent = this.array[parentIndex];
8687

8788
if ((type == OrderingType.MIN && value.compareTo(parent) < 0)
88-
|| (type == OrderingType.MAX && value.compareTo(parent) > 0)
89-
) {
89+
|| (type == OrderingType.MAX && value.compareTo(parent) > 0)) {
9090
// Node is greater/lesser than parent, switch node with parent
9191
this.array[parentIndex] = value;
9292
this.array[nodeIndex] = parent;
@@ -99,7 +99,7 @@ private void heapUp(int idx) {
9999

100100
private void heapDown(int index) {
101101
T value = this.array[index];
102-
if (value==null)
102+
if (value == null)
103103
return;
104104

105105
int leftIndex = getLeftIndex(index);
@@ -114,18 +114,18 @@ private void heapDown(int index) {
114114

115115
T nodeToMove = null;
116116
int nodeToMoveIndex = -1;
117-
if ((type == OrderingType.MIN && left != null && right != null && value.compareTo(left) > 0 && value.compareTo(right) > 0)
118-
|| (type == OrderingType.MAX && left != null && right != null && value.compareTo(left) < 0 && value.compareTo(right) < 0)) {
117+
if ((type == OrderingType.MIN && left != null && right != null && value.compareTo(left) > 0
118+
&& value.compareTo(right) > 0)
119+
|| (type == OrderingType.MAX && left != null && right != null && value.compareTo(left) < 0
120+
&& value.compareTo(right) < 0)) {
119121
// Both children are greater/lesser than node
120-
if ((right!=null) &&
121-
((type == OrderingType.MIN && (right.compareTo(left) < 0)) || ((type == OrderingType.MAX && right.compareTo(left) > 0)))
122-
) {
122+
if ((right != null) && ((type == OrderingType.MIN && (right.compareTo(left) < 0))
123+
|| ((type == OrderingType.MAX && right.compareTo(left) > 0)))) {
123124
// Right is greater/lesser than left
124125
nodeToMove = right;
125126
nodeToMoveIndex = rightIndex;
126-
} else if ((left!=null) &&
127-
((type == OrderingType.MIN && left.compareTo(right) < 0) || (type == OrderingType.MAX && left.compareTo(right) > 0))
128-
) {
127+
} else if ((left != null) && ((type == OrderingType.MIN && left.compareTo(right) < 0)
128+
|| (type == OrderingType.MAX && left.compareTo(right) > 0))) {
129129
// Left is greater/lesser than right
130130
nodeToMove = left;
131131
nodeToMoveIndex = leftIndex;
@@ -135,14 +135,12 @@ private void heapDown(int index) {
135135
nodeToMoveIndex = rightIndex;
136136
}
137137
} else if ((type == OrderingType.MIN && right != null && value.compareTo(right) > 0)
138-
|| (type == OrderingType.MAX && right != null && value.compareTo(right) < 0)
139-
) {
138+
|| (type == OrderingType.MAX && right != null && value.compareTo(right) < 0)) {
140139
// Right is greater/lesser than node
141140
nodeToMove = right;
142141
nodeToMoveIndex = rightIndex;
143142
} else if ((type == OrderingType.MIN && left != null && value.compareTo(left) > 0)
144-
|| (type == OrderingType.MAX && left != null && value.compareTo(left) < 0)
145-
) {
143+
|| (type == OrderingType.MAX && left != null && value.compareTo(left) < 0)) {
146144
// Left is greater/lesser than node
147145
nodeToMove = left;
148146
nodeToMoveIndex = leftIndex;
@@ -176,13 +174,13 @@ private static int getRightIndex(int index) {
176174

177175
// Grow the array by double
178176
private void grow() {
179-
int growSize = size<<1;
177+
int growSize = size << 1;
180178
array = Arrays.copyOf(array, growSize);
181179
}
182180

183181
// Shrink the array by half
184182
private void shrink() {
185-
int shrinkSize = array.length>>1;
183+
int shrinkSize = array.length >> 1;
186184
array = Arrays.copyOf(array, shrinkSize);
187185
}
188186

@@ -193,10 +191,12 @@ public void clear() {
193191

194192
@Override
195193
public boolean contains(T value) {
196-
if (array.length == 0) return false;
194+
if (array.length == 0)
195+
return false;
197196
for (int i = 0; i < size; i++) {
198197
T t = array[i];
199-
if (t.equals(value)) return true;
198+
if (t.equals(value))
199+
return true;
200200
}
201201
return false;
202202
}
@@ -214,7 +214,8 @@ private boolean validateNode(int index) {
214214
int rightIndex = getRightIndex(index);
215215

216216
// We shouldn't ever have a right node without a left in a heap
217-
if (rightIndex != Integer.MIN_VALUE && leftIndex == Integer.MIN_VALUE) return false;
217+
if (rightIndex != Integer.MIN_VALUE && leftIndex == Integer.MIN_VALUE)
218+
return false;
218219

219220
if (leftIndex != Integer.MIN_VALUE && leftIndex < size) {
220221
T left = this.array[leftIndex];
@@ -238,8 +239,10 @@ private boolean validateNode(int index) {
238239

239240
@Override
240241
public T[] getHeap() {
242+
@SuppressWarnings("unchecked")
241243
T[] nodes = (T[]) new Comparable[size];
242-
if (array.length == 0) return nodes;
244+
if (array.length == 0)
245+
return nodes;
243246

244247
for (int i = 0; i < size; i++) {
245248
T node = this.array[i];
@@ -250,7 +253,8 @@ public T[] getHeap() {
250253

251254
@Override
252255
public T getHeadValue() {
253-
if (array.length == 0) return null;
256+
if (array.length == 0)
257+
return null;
254258
return array[0];
255259
}
256260

@@ -259,11 +263,10 @@ public T removeHead() {
259263
return remove(getHeadValue());
260264
}
261265

262-
263266
@Override
264267
public java.util.Collection<T> toCollection() {
265268

266-
throw new NotImplementedException();
269+
throw new UnsupportedOperationException();
267270
}
268271

269272
@Override
@@ -283,7 +286,8 @@ static <T extends Comparable<T>> String getString(BinaryHeapArray<T> tree) {
283286
return getString(tree, 0, "", true);
284287
}
285288

286-
private static <T extends Comparable<T>> String getString(BinaryHeapArray<T> tree, int index, String prefix, boolean isTail) {
289+
private static <T extends Comparable<T>> String getString(BinaryHeapArray<T> tree, int index, String prefix,
290+
boolean isTail) {
287291
StringBuilder builder = new StringBuilder();
288292

289293
T value = tree.array[index];
@@ -305,14 +309,12 @@ private static <T extends Comparable<T>> String getString(BinaryHeapArray<T> tre
305309
builder.append(getString(tree, children.get(i), prefix + (isTail ? " " : "│ "), false));
306310
}
307311
if (children.size() >= 1) {
308-
builder.append(getString(tree, children.get(children.size() - 1), prefix
309-
+ (isTail ? " " : "│ "), true));
312+
builder.append(getString(tree, children.get(children.size() - 1),
313+
prefix + (isTail ? " " : "│ "), true));
310314
}
311315
}
312316

313317
return builder.toString();
314318
}
315319
}
316320
}
317-
318-

0 commit comments

Comments
 (0)