浏览代码

indexed stack

Daniel Zlotin 8 年前
父节点
当前提交
0d4d1f7afe

lib/android/app/src/main/java/com/reactnativenavigation/utils/IdStack.java → lib/android/app/src/main/java/com/reactnativenavigation/utils/IndexedStack.java 查看文件

3
 import java.util.ArrayDeque;
3
 import java.util.ArrayDeque;
4
 import java.util.HashMap;
4
 import java.util.HashMap;
5
 
5
 
6
-public class IdStack<E> {
6
+public class IndexedStack<K, E> {
7
 
7
 
8
-	private final ArrayDeque<String> deque = new ArrayDeque<>();
9
-	private final HashMap<String, E> map = new HashMap<>();
8
+	private final ArrayDeque<K> deque = new ArrayDeque<>();
9
+	private final HashMap<K, E> map = new HashMap<>();
10
 
10
 
11
-	public void push(String id, E item) {
11
+	public void push(K id, E item) {
12
 		deque.push(id);
12
 		deque.push(id);
13
 		map.put(id, item);
13
 		map.put(id, item);
14
 	}
14
 	}
21
 		if (deque.isEmpty()) {
21
 		if (deque.isEmpty()) {
22
 			return null;
22
 			return null;
23
 		}
23
 		}
24
-		String popped = deque.pop();
24
+		K popped = deque.pop();
25
 		E removed = map.remove(popped);
25
 		E removed = map.remove(popped);
26
 		return removed;
26
 		return removed;
27
 	}
27
 	}

lib/android/app/src/test/java/com/reactnativenavigation/utils/IdStackTest.java → lib/android/app/src/test/java/com/reactnativenavigation/utils/IndexedStackTest.java 查看文件

6
 
6
 
7
 import static org.assertj.core.api.Java6Assertions.assertThat;
7
 import static org.assertj.core.api.Java6Assertions.assertThat;
8
 
8
 
9
-public class IdStackTest extends BaseTest {
9
+public class IndexedStackTest extends BaseTest {
10
 
10
 
11
-	private IdStack<Integer> uut;
11
+	private IndexedStack<String, Integer> uut;
12
 
12
 
13
 	@Override
13
 	@Override
14
 	public void beforeEach() {
14
 	public void beforeEach() {
15
 		super.beforeEach();
15
 		super.beforeEach();
16
-		uut = new IdStack<>();
16
+		uut = new IndexedStack<>();
17
 	}
17
 	}
18
 
18
 
19
 	@Test
19
 	@Test