Java 11 migrate remaining (g,h,i) (#1116)
* Moves game-loop to Java 11 * Moves guarded-suspension to Java 11 * Moves half-sync-half-async to Java 11 * Moves hexagonal to Java 11 * Moves intercepting-filter to Java 11 * Moves interpreter to Java 11 * Moves iterator to Java 11
This commit is contained in:
committed by
Ilkka Seppälä
parent
7d0a5c0edb
commit
f835d3d516
@ -30,7 +30,6 @@ import static com.iluwatar.iterator.list.ItemType.WEAPON;
|
||||
|
||||
import com.iluwatar.iterator.bst.BstIterator;
|
||||
import com.iluwatar.iterator.bst.TreeNode;
|
||||
import com.iluwatar.iterator.list.Item;
|
||||
import com.iluwatar.iterator.list.ItemType;
|
||||
import com.iluwatar.iterator.list.TreasureChest;
|
||||
import org.slf4j.Logger;
|
||||
@ -53,7 +52,7 @@ public class App {
|
||||
private static void demonstrateTreasureChestIteratorForType(ItemType itemType) {
|
||||
LOGGER.info("------------------------");
|
||||
LOGGER.info("Item Iterator for ItemType " + itemType + ": ");
|
||||
Iterator<Item> itemIterator = TREASURE_CHEST.iterator(itemType);
|
||||
var itemIterator = TREASURE_CHEST.iterator(itemType);
|
||||
while (itemIterator.hasNext()) {
|
||||
LOGGER.info(itemIterator.next().toString());
|
||||
}
|
||||
@ -62,15 +61,15 @@ public class App {
|
||||
private static void demonstrateBstIterator() {
|
||||
LOGGER.info("------------------------");
|
||||
LOGGER.info("BST Iterator: ");
|
||||
TreeNode<Integer> root = buildIntegerBst();
|
||||
BstIterator bstIterator = new BstIterator<>(root);
|
||||
var root = buildIntegerBst();
|
||||
var bstIterator = new BstIterator<Integer>(root);
|
||||
while (bstIterator.hasNext()) {
|
||||
LOGGER.info("Next node: " + bstIterator.next().getVal());
|
||||
}
|
||||
}
|
||||
|
||||
private static TreeNode<Integer> buildIntegerBst() {
|
||||
TreeNode<Integer> root = new TreeNode<>(8);
|
||||
var root = new TreeNode<>(8);
|
||||
|
||||
root.insert(3);
|
||||
root.insert(10);
|
||||
|
@ -78,7 +78,7 @@ public class BstIterator<T extends Comparable<T>> implements Iterator<TreeNode<T
|
||||
if (pathStack.isEmpty()) {
|
||||
throw new NoSuchElementException();
|
||||
}
|
||||
TreeNode<T> next = pathStack.pop();
|
||||
var next = pathStack.pop();
|
||||
pushPathToNextSmallest(next.getRight());
|
||||
return next;
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ public TreeNode next() throws IllegalStateException {
|
||||
if (pathStack.isEmpty()) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
TreeNode next = pathStack.pop();
|
||||
var next = pathStack.pop();
|
||||
// follow right child to next smallest node
|
||||
pushPathToNextSmallest(next.getRight());
|
||||
return next;
|
||||
|
@ -72,7 +72,7 @@ public class TreeNode<T extends Comparable<T>> {
|
||||
* @param valToInsert The value to insert as a new TreeNode
|
||||
*/
|
||||
public void insert(T valToInsert) {
|
||||
TreeNode<T> parent = getParentNodeOfValueToBeInserted(valToInsert);
|
||||
var parent = getParentNodeOfValueToBeInserted(valToInsert);
|
||||
parent.insertNewChild(valToInsert);
|
||||
}
|
||||
|
||||
@ -84,7 +84,7 @@ public class TreeNode<T extends Comparable<T>> {
|
||||
*/
|
||||
private TreeNode<T> getParentNodeOfValueToBeInserted(T valToInsert) {
|
||||
TreeNode<T> parent = null;
|
||||
TreeNode<T> curr = this;
|
||||
var curr = this;
|
||||
|
||||
while (curr != null) {
|
||||
parent = curr;
|
||||
|
@ -24,7 +24,6 @@
|
||||
package com.iluwatar.iterator.list;
|
||||
|
||||
import com.iluwatar.iterator.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* TreasureChestItemIterator.
|
||||
@ -59,10 +58,9 @@ public class TreasureChestItemIterator implements Iterator<Item> {
|
||||
}
|
||||
|
||||
private int findNextIdx() {
|
||||
List<Item> items = chest.getItems();
|
||||
boolean found = false;
|
||||
int tempIdx = idx;
|
||||
while (!found) {
|
||||
var items = chest.getItems();
|
||||
var tempIdx = idx;
|
||||
while (true) {
|
||||
tempIdx++;
|
||||
if (tempIdx >= items.size()) {
|
||||
tempIdx = -1;
|
||||
|
@ -32,7 +32,6 @@ class AppTest {
|
||||
|
||||
@Test
|
||||
void testApp() {
|
||||
String[] args = {};
|
||||
App.main(args);
|
||||
App.main(new String[]{});
|
||||
}
|
||||
}
|
@ -28,13 +28,12 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.TestInstance;
|
||||
import org.junit.jupiter.api.TestInstance.Lifecycle;
|
||||
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
@TestInstance(Lifecycle.PER_CLASS)
|
||||
class BstIteratorTest {
|
||||
|
||||
@ -55,14 +54,14 @@ class BstIteratorTest {
|
||||
|
||||
@Test
|
||||
void nextForEmptyTree() {
|
||||
BstIterator<Integer> iter = new BstIterator<>(emptyRoot);
|
||||
var iter = new BstIterator<>(emptyRoot);
|
||||
assertThrows(NoSuchElementException.class, iter::next,
|
||||
"next() should throw an IllegalStateException if hasNext() is false.");
|
||||
}
|
||||
|
||||
@Test
|
||||
void nextOverEntirePopulatedTree() {
|
||||
BstIterator<Integer> iter = new BstIterator<>(nonEmptyRoot);
|
||||
var iter = new BstIterator<>(nonEmptyRoot);
|
||||
assertEquals(Integer.valueOf(1), iter.next().getVal(), "First Node is 1.");
|
||||
assertEquals(Integer.valueOf(3), iter.next().getVal(), "Second Node is 3.");
|
||||
assertEquals(Integer.valueOf(4), iter.next().getVal(), "Third Node is 4.");
|
||||
@ -73,19 +72,19 @@ class BstIteratorTest {
|
||||
|
||||
@Test
|
||||
void hasNextForEmptyTree() {
|
||||
BstIterator<Integer> iter = new BstIterator<>(emptyRoot);
|
||||
var iter = new BstIterator<>(emptyRoot);
|
||||
assertFalse(iter.hasNext(), "hasNext() should return false for empty tree.");
|
||||
}
|
||||
|
||||
@Test
|
||||
void hasNextForPopulatedTree() {
|
||||
BstIterator<Integer> iter = new BstIterator<>(nonEmptyRoot);
|
||||
var iter = new BstIterator<>(nonEmptyRoot);
|
||||
assertTrue(iter.hasNext(), "hasNext() should return true for populated tree.");
|
||||
}
|
||||
|
||||
@Test
|
||||
void nextAndHasNextOverEntirePopulatedTree() {
|
||||
BstIterator<Integer> iter = new BstIterator<>(nonEmptyRoot);
|
||||
var iter = new BstIterator<>(nonEmptyRoot);
|
||||
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
|
||||
assertEquals(Integer.valueOf(1), iter.next().getVal(), "First Node is 1.");
|
||||
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
|
||||
|
@ -27,7 +27,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.fail;
|
||||
|
||||
import com.iluwatar.iterator.Iterator;
|
||||
import java.util.List;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
@ -46,16 +45,16 @@ public class TreasureChestTest {
|
||||
*/
|
||||
public static List<Object[]> dataProvider() {
|
||||
return List.of(
|
||||
new Object[]{new Item(ItemType.POTION, "Potion of courage")},
|
||||
new Object[]{new Item(ItemType.RING, "Ring of shadows")},
|
||||
new Object[]{new Item(ItemType.POTION, "Potion of wisdom")},
|
||||
new Object[]{new Item(ItemType.POTION, "Potion of blood")},
|
||||
new Object[]{new Item(ItemType.WEAPON, "Sword of silver +1")},
|
||||
new Object[]{new Item(ItemType.POTION, "Potion of rust")},
|
||||
new Object[]{new Item(ItemType.POTION, "Potion of healing")},
|
||||
new Object[]{new Item(ItemType.RING, "Ring of armor")},
|
||||
new Object[]{new Item(ItemType.WEAPON, "Steel halberd")},
|
||||
new Object[]{new Item(ItemType.WEAPON, "Dagger of poison")}
|
||||
new Object[]{new Item(ItemType.POTION, "Potion of courage")},
|
||||
new Object[]{new Item(ItemType.RING, "Ring of shadows")},
|
||||
new Object[]{new Item(ItemType.POTION, "Potion of wisdom")},
|
||||
new Object[]{new Item(ItemType.POTION, "Potion of blood")},
|
||||
new Object[]{new Item(ItemType.WEAPON, "Sword of silver +1")},
|
||||
new Object[]{new Item(ItemType.POTION, "Potion of rust")},
|
||||
new Object[]{new Item(ItemType.POTION, "Potion of healing")},
|
||||
new Object[]{new Item(ItemType.RING, "Ring of armor")},
|
||||
new Object[]{new Item(ItemType.WEAPON, "Steel halberd")},
|
||||
new Object[]{new Item(ItemType.WEAPON, "Dagger of poison")}
|
||||
);
|
||||
}
|
||||
|
||||
@ -66,16 +65,16 @@ public class TreasureChestTest {
|
||||
@ParameterizedTest
|
||||
@MethodSource("dataProvider")
|
||||
public void testIterator(Item expectedItem) {
|
||||
final TreasureChest chest = new TreasureChest();
|
||||
final Iterator<Item> iterator = chest.iterator(expectedItem.getType());
|
||||
final var chest = new TreasureChest();
|
||||
final var iterator = chest.iterator(expectedItem.getType());
|
||||
assertNotNull(iterator);
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
final Item item = iterator.next();
|
||||
final var item = iterator.next();
|
||||
assertNotNull(item);
|
||||
assertEquals(expectedItem.getType(), item.getType());
|
||||
|
||||
final String name = item.toString();
|
||||
final var name = item.toString();
|
||||
assertNotNull(name);
|
||||
if (expectedItem.toString().equals(name)) {
|
||||
return;
|
||||
@ -93,17 +92,17 @@ public class TreasureChestTest {
|
||||
@ParameterizedTest
|
||||
@MethodSource("dataProvider")
|
||||
public void testGetItems(Item expectedItem) throws Exception {
|
||||
final TreasureChest chest = new TreasureChest();
|
||||
final List<Item> items = chest.getItems();
|
||||
final var chest = new TreasureChest();
|
||||
final var items = chest.getItems();
|
||||
assertNotNull(items);
|
||||
|
||||
for (final Item item : items) {
|
||||
for (final var item : items) {
|
||||
assertNotNull(item);
|
||||
assertNotNull(item.getType());
|
||||
assertNotNull(item.toString());
|
||||
|
||||
final boolean sameType = expectedItem.getType() == item.getType();
|
||||
final boolean sameName = expectedItem.toString().equals(item.toString());
|
||||
final var sameType = expectedItem.getType() == item.getType();
|
||||
final var sameName = expectedItem.toString().equals(item.toString());
|
||||
if (sameType && sameName) {
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user