瀏覽代碼

Swap, Table, TableNested

vvmk 6 年之前
父節點
當前提交
f9e6c8fad3

+ 0
- 1
src/main/java/Pair/Arrays.java 查看文件

2
 
2
 
3
 import java.util.ArrayList;
3
 import java.util.ArrayList;
4
 import java.util.Collections;
4
 import java.util.Collections;
5
-import java.util.Comparator;
6
 
5
 
7
 /**
6
 /**
8
  * In here you must make firstLast, which will return a pair of the first element in the array list and the last
7
  * In here you must make firstLast, which will return a pair of the first element in the array list and the last

+ 2
- 1
src/main/java/StackArray/ObjectStack.java 查看文件

11
 public class ObjectStack<E> extends Stack<E> {
11
 public class ObjectStack<E> extends Stack<E> {
12
     private Object[] elements;
12
     private Object[] elements;
13
 
13
 
14
-    public ObjectStack() {}
14
+    public ObjectStack() {
15
+    }
15
 }
16
 }

+ 2
- 2
src/main/java/StackArrayList/Stack.java 查看文件

11
     private List<E> elements;
11
     private List<E> elements;
12
 
12
 
13
 
13
 
14
-    public Stack(){
14
+    public Stack() {
15
         elements = new ArrayList<>();
15
         elements = new ArrayList<>();
16
     }
16
     }
17
 
17
 
20
     }
20
     }
21
 
21
 
22
     public E pop() {
22
     public E pop() {
23
-        return elements.remove(elements.size()-1);
23
+        return elements.remove(elements.size() - 1);
24
     }
24
     }
25
 
25
 
26
     public boolean isEmpty() {
26
     public boolean isEmpty() {

+ 16
- 2
src/main/java/Table/Table.java 查看文件

1
 package Table;
1
 package Table;
2
 
2
 
3
-import java.util.ArrayList;
3
+import java.util.HashMap;
4
+import java.util.Map;
4
 
5
 
5
 /**
6
 /**
6
  * This class needs to manage an ArrayList of Entry objects.  It needs a get method that takes a key and returns
7
  * This class needs to manage an ArrayList of Entry objects.  It needs a get method that takes a key and returns
10
  * Void return on `remove`.
11
  * Void return on `remove`.
11
  */
12
  */
12
 public class Table<K, V> {
13
 public class Table<K, V> {
13
-    private ArrayList entries;
14
+    private Map<K, V> entries;
14
 
15
 
15
     public Table() {
16
     public Table() {
17
+        entries = new HashMap<>();
18
+    }
19
+
20
+    public V get(K key) {
21
+        return entries.get(key);
22
+    }
23
+
24
+    public void put(K key, V value) {
25
+        entries.put(key, value);
26
+    }
27
+
28
+    public void remove(K key) {
29
+        entries.remove(key);
16
     }
30
     }
17
 }
31
 }

+ 19
- 2
src/main/java/TableNested/TableNested.java 查看文件

1
 package TableNested;
1
 package TableNested;
2
 
2
 
3
-import java.util.ArrayList;
3
+import Table.Table;
4
 
4
 
5
 /**
5
 /**
6
  * All you need to do for this microlab is take the Table and Entry from the last one and make Entry a nested class.
6
  * All you need to do for this microlab is take the Table and Entry from the last one and make Entry a nested class.
7
  * Think about how nested classes should work with generics.
7
  * Think about how nested classes should work with generics.
8
  */
8
  */
9
-public class TableNested<K, V> {
9
+public class TableNested<K, V> extends Table<K, V> {
10
+    private class Entry<K, V> {
11
+        private K key;
12
+        private V value;
10
 
13
 
14
+        public Entry(K key, V value) {
15
+            this.key = key;
16
+            this.value = value;
17
+        }
18
+
19
+        public K getKey() {
20
+            return key;
21
+        }
22
+
23
+        public V getValue() {
24
+            return value;
25
+        }
26
+
27
+    }
11
 }
28
 }

+ 15
- 15
src/test/java/Swap/SwapTest.java 查看文件

1
 package Swap;
1
 package Swap;
2
-//
3
-//import org.junit.Assert;
4
-//import org.junit.Test;
5
-//
6
-///**
7
-// * Get the tests passing.
8
-// */
9
-//public class SwapTest {
10
-//    @Test
11
-//    public void testSwap() throws Exception {
12
-//        Double[] result = Swap.swap(0,1, 1.5, 2,3);
13
-//        Double[] expected = {2.0, 1.5, 3.0};
14
-//        Assert.assertArrayEquals(expected, result);
15
-//    }
16
-//}
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+/**
7
+ * Get the tests passing.
8
+ */
9
+public class SwapTest {
10
+    @Test
11
+    public void testSwap() throws Exception {
12
+        Double[] result = Swap.<Double>swap(0, 1, 1.5, 2.0, 3.0);
13
+        Double[] expected = {2.0, 1.5, 3.0};
14
+        Assert.assertArrayEquals(expected, result);
15
+    }
16
+}

+ 50
- 50
src/test/java/Table/TableTest.java 查看文件

1
-//package Table;
2
-//
3
-//import org.junit.Assert;
4
-//import org.junit.Test;
5
-//
6
-//public class TableTest {
7
-//    @Test
8
-//    public void testGetWithoutAnItemReturnsNull() throws Exception {
9
-//        // Given an empty table
10
-//        Table<String, Integer> table = new Table<String, Integer>();
11
-//        // When we try and get an item then it returns null
12
-//        Assert.assertEquals(table.get("foo"), null);
13
-//    }
14
-//
15
-//    @Test
16
-//    public void testPutAnItemReturnsAndDoesNotDelete() throws Exception {
17
-//        //Given an empty table
18
-//        Table<String, Integer> table = new Table<String, Integer>();
19
-//        // When we put an item in it
20
-//        table.put("foo", 1);
21
-//        // Then we should be able to get it's value
22
-//        Assert.assertEquals(table.get("foo"), new Integer(1));
23
-//        // And then we should be able to get it again as it wasn't removed
24
-//        Assert.assertEquals(table.get("foo"), new Integer(1));
25
-//    }
26
-//
27
-//    @Test
28
-//    public void testOverwritingAnItem() throws Exception {
29
-//        //Given an empty table
30
-//        Table<String, Integer> table = new Table<String, Integer>();
31
-//        // When we put an item in it
32
-//        table.put("foo", 1);
33
-//        // And we put a new value with the same key
34
-//        table.put("foo", 2);
35
-//        // Then we should get back the new value
36
-//        Assert.assertEquals(table.get("foo"), new Integer(2));
37
-//    }
38
-//
39
-//    @Test
40
-//    public void testRemoveAnItem() throws Exception {
41
-//        //Given an empty table
42
-//        Table<String, Integer> table = new Table<String, Integer>();
43
-//        // When we put an item in it
44
-//        table.put("foo", 1);
45
-//        // And we remove that item
46
-//        table.remove("foo");
47
-//        // Then we should get back null for that balue
48
-//        Assert.assertEquals(table.get("foo"), null);
49
-//    }
50
-//}
1
+package Table;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class TableTest {
7
+    @Test
8
+    public void testGetWithoutAnItemReturnsNull() throws Exception {
9
+        // Given an empty table
10
+        Table<String, Integer> table = new Table<String, Integer>();
11
+        // When we try and get an item then it returns null
12
+        Assert.assertEquals(table.get("foo"), null);
13
+    }
14
+
15
+    @Test
16
+    public void testPutAnItemReturnsAndDoesNotDelete() throws Exception {
17
+        //Given an empty table
18
+        Table<String, Integer> table = new Table<>();
19
+        // When we put an item in it
20
+        table.put("foo", 1);
21
+        // Then we should be able to get it's value
22
+        Assert.assertEquals(table.get("foo"), new Integer(1));
23
+        // And then we should be able to get it again as it wasn't removed
24
+        Assert.assertEquals(table.get("foo"), new Integer(1));
25
+    }
26
+
27
+    @Test
28
+    public void testOverwritingAnItem() throws Exception {
29
+        //Given an empty table
30
+        Table<String, Integer> table = new Table<>();
31
+        // When we put an item in it
32
+        table.put("foo", 1);
33
+        // And we put a new value with the same key
34
+        table.put("foo", 2);
35
+        // Then we should get back the new value
36
+        Assert.assertEquals(table.get("foo"), new Integer(2));
37
+    }
38
+
39
+    @Test
40
+    public void testRemoveAnItem() throws Exception {
41
+        //Given an empty table
42
+        Table<String, Integer> table = new Table<>();
43
+        // When we put an item in it
44
+        table.put("foo", 1);
45
+        // And we remove that item
46
+        table.remove("foo");
47
+        // Then we should get back null for that balue
48
+        Assert.assertEquals(table.get("foo"), null);
49
+    }
50
+}

+ 50
- 50
src/test/java/TableNested/TableNestedTest.java 查看文件

1
-//package TableNested;
2
-//
3
-//import org.junit.Assert;
4
-//import org.junit.Test;
5
-//
6
-//public class TableNestedTest {
7
-//    @Test
8
-//    public void testGetWithoutAnItemReturnsNull() throws Exception {
9
-//        // Given an empty table
10
-//        TableNested<String, Integer> table = new TableNested<String, Integer>();
11
-//        // When we try and get an item then it returns null
12
-//        Assert.assertEquals(table.get("foo"), null);
13
-//    }
14
-//
15
-//    @Test
16
-//    public void testPutAnItemReturnsAndDoesNotDelete() throws Exception {
17
-//        //Given an empty table
18
-//        TableNested<String, Integer> table = new TableNested<String, Integer>();
19
-//        // When we put an item in it
20
-//        table.put("foo", 1);
21
-//        // Then we should be able to get it's value
22
-//        Assert.assertEquals(table.get("foo"), new Integer(1));
23
-//        // And then we should be able to get it again as it wasn't removed
24
-//        Assert.assertEquals(table.get("foo"), new Integer(1));
25
-//    }
26
-//
27
-//    @Test
28
-//    public void testOverwritingAnItem() throws Exception {
29
-//        //Given an empty table
30
-//        TableNested<String, Integer> table = new TableNested<String, Integer>();
31
-//        // When we put an item in it
32
-//        table.put("foo", 1);
33
-//        // And we put a new value with the same key
34
-//        table.put("foo", 2);
35
-//        // Then we should get back the new value
36
-//        Assert.assertEquals(table.get("foo"), new Integer(2));
37
-//    }
38
-//
39
-//    @Test
40
-//    public void testRemoveAnItem() throws Exception {
41
-//        //Given an empty table
42
-//        TableNested<String, Integer> table = new TableNested<String, Integer>();
43
-//        // When we put an item in it
44
-//        table.put("foo", 1);
45
-//        // And we remove that item
46
-//        table.remove("foo");
47
-//        // Then we should get back null for that balue
48
-//        Assert.assertEquals(table.get("foo"), null);
49
-//    }
50
-//}
1
+package TableNested;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+public class TableNestedTest {
7
+    @Test
8
+    public void testGetWithoutAnItemReturnsNull() throws Exception {
9
+        // Given an empty table
10
+        TableNested<String, Integer> table = new TableNested<String, Integer>();
11
+        // When we try and get an item then it returns null
12
+        Assert.assertEquals(table.get("foo"), null);
13
+    }
14
+
15
+    @Test
16
+    public void testPutAnItemReturnsAndDoesNotDelete() throws Exception {
17
+        //Given an empty table
18
+        TableNested<String, Integer> table = new TableNested<String, Integer>();
19
+        // When we put an item in it
20
+        table.put("foo", 1);
21
+        // Then we should be able to get it's value
22
+        Assert.assertEquals(table.get("foo"), new Integer(1));
23
+        // And then we should be able to get it again as it wasn't removed
24
+        Assert.assertEquals(table.get("foo"), new Integer(1));
25
+    }
26
+
27
+    @Test
28
+    public void testOverwritingAnItem() throws Exception {
29
+        //Given an empty table
30
+        TableNested<String, Integer> table = new TableNested<String, Integer>();
31
+        // When we put an item in it
32
+        table.put("foo", 1);
33
+        // And we put a new value with the same key
34
+        table.put("foo", 2);
35
+        // Then we should get back the new value
36
+        Assert.assertEquals(table.get("foo"), new Integer(2));
37
+    }
38
+
39
+    @Test
40
+    public void testRemoveAnItem() throws Exception {
41
+        //Given an empty table
42
+        TableNested<String, Integer> table = new TableNested<String, Integer>();
43
+        // When we put an item in it
44
+        table.put("foo", 1);
45
+        // And we remove that item
46
+        table.remove("foo");
47
+        // Then we should get back null for that balue
48
+        Assert.assertEquals(table.get("foo"), null);
49
+    }
50
+}