Kthomas 6 anos atrás
pai
commit
dc98992c04

+ 38
- 16
src/main/java/Pair/Arrays.java Ver arquivo

@@ -1,16 +1,38 @@
1
-//package Pair;
2
-//
3
-//import java.util.ArrayList;
4
-//import java.util.Collections;
5
-//
6
-///**
7
-// * In here you must make firstLast, which will return a pair of the first element in the array list and the last
8
-// * element in the arraylist.
9
-// * You must also make a min method that returns the smallest item in the array list
10
-// * A max method that returns the largest item in the arraylist
11
-// * And a minmax method that returns a pair containing the largest and smallest items from the array list
12
-// */
13
-//public class Arrays {
14
-//    public static <___> Pair<E> firstLast(ArrayList<___> a) {
15
-//    }
16
-//}
1
+package Pair;
2
+
3
+import java.util.ArrayList;
4
+import java.util.Collections;
5
+
6
+/**
7
+ * In here you must make firstLast, which will return a pair of the first element in the array list and the last
8
+ * element in the arraylist.
9
+ * You must also make a min method that returns the smallest item in the array list
10
+ * A max method that returns the largest item in the arraylist
11
+ * And a minmax method that returns a pair containing the largest and smallest items from the array list
12
+ */
13
+public class Arrays {
14
+
15
+    @SuppressWarnings("unchecked")
16
+    public static <E extends Comparable> Pair<E> firstLast(ArrayList<E> arrayList) {
17
+        return new Pair<E>(arrayList.get(0), arrayList.get(arrayList.size() - 1));
18
+    }
19
+
20
+    @SuppressWarnings("unchecked")
21
+    public static <E extends Comparable> E min(ArrayList<E> arrayList) {
22
+        Collections.sort(arrayList);
23
+        return arrayList.get(0);
24
+    }
25
+
26
+    @SuppressWarnings("unchecked")
27
+    public static <E extends Comparable> E max(ArrayList<E> arrayList) {
28
+        Collections.sort(arrayList);
29
+        return arrayList.get(arrayList.size() - 1);
30
+    }
31
+
32
+    @SuppressWarnings("unchecked")
33
+    public static <E extends Comparable> Pair<E> minMax(ArrayList<E> arrayList) {
34
+        Collections.sort(arrayList);
35
+        return new Pair<E>(arrayList.get(0), arrayList.get(arrayList.size() - 1));
36
+    }
37
+}
38
+

+ 1
- 1
src/main/java/Pair/Pair.java Ver arquivo

@@ -7,7 +7,7 @@ package Pair;
7 7
  * min -> returns the minimum of the pair
8 8
  * max -> returns the maximum of the pair
9 9
  */
10
-public class Pair <E extends Comparable<E>>  {
10
+public class Pair <E extends Comparable>  {
11 11
     //without extending you cannot compare generic types
12 12
     //by extending comparing individual values of generic types is now viable
13 13
     private E firstValue;

+ 74
- 74
src/test/java/Pair/ArraysTest.java Ver arquivo

@@ -1,74 +1,74 @@
1
-//package Pair;
2
-//
3
-//import org.junit.Assert;
4
-//import org.junit.Test;
5
-//
6
-//import java.util.ArrayList;
7
-//
8
-//public class ArraysTest {
9
-//    @Test
10
-//    public void firstLast() throws Exception {
11
-//        // Given an ArrayList of Integers
12
-//        ArrayList<Integer> al = new ArrayList<>();
13
-//        al.add(1);
14
-//        al.add(5);
15
-//        al.add(3);
16
-//        al.add(4);
17
-//        al.add(2);
18
-//        al.add(0);
19
-//        al.add(1000);
20
-//        // When firstLast is called
21
-//        Pair<Integer> result = Arrays.firstLast(al);
22
-//        // Then it should return the first and last items
23
-//        Assert.assertEquals(new Integer(1), result.getFirst());
24
-//        Assert.assertEquals(new Integer(1000), result.getSecond());
25
-//    }
26
-//
27
-//    @Test
28
-//    public void testMin() throws Exception {
29
-//        // Given an ArrayList of Integers
30
-//        ArrayList<Integer> al = new ArrayList<>();
31
-//        al.add(1);
32
-//        al.add(5);
33
-//        al.add(3);
34
-//        al.add(4);
35
-//        al.add(2);
36
-//        al.add(0);
37
-//        al.add(1000);
38
-//        // When min is called assert that it gets the smallest item
39
-//        Assert.assertEquals(new Integer(0), Arrays.min(al));
40
-//    }
41
-//
42
-//    @Test
43
-//    public void testMax() throws Exception {
44
-//        // Given an ArrayList of Integers
45
-//        ArrayList<Integer> al = new ArrayList<>();
46
-//        al.add(1);
47
-//        al.add(5);
48
-//        al.add(3);
49
-//        al.add(4);
50
-//        al.add(2);
51
-//        al.add(0);
52
-//        al.add(1000);
53
-//        // When min is called assert that it gets the largest item
54
-//        Assert.assertEquals(new Integer(1000), Arrays.max(al));
55
-//    }
56
-//
57
-//    @Test
58
-//    public void testMinMax() throws Exception {
59
-//        // Given an ArrayList of Integers
60
-//        ArrayList<Integer> al = new ArrayList<>();
61
-//        al.add(1);
62
-//        al.add(5);
63
-//        al.add(3);
64
-//        al.add(4);
65
-//        al.add(2);
66
-//        al.add(0);
67
-//        al.add(1000);
68
-//        // When minMax is called
69
-//        Pair<Integer> result = Arrays.minMax(al);
70
-//        // Then it should return the first and last items
71
-//        Assert.assertEquals(new Integer(0), result.min());
72
-//        Assert.assertEquals(new Integer(1000), result.max());
73
-//    }
74
-//}
1
+package Pair;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
6
+import java.util.ArrayList;
7
+
8
+public class ArraysTest {
9
+    @Test
10
+    public void firstLast() throws Exception {
11
+        // Given an ArrayList of Integers
12
+        ArrayList<Integer> al = new ArrayList<>();
13
+        al.add(1);
14
+        al.add(5);
15
+        al.add(3);
16
+        al.add(4);
17
+        al.add(2);
18
+        al.add(0);
19
+        al.add(1000);
20
+        // When firstLast is called
21
+        Pair<Integer> result = Arrays.firstLast(al);
22
+        // Then it should return the first and last items
23
+        Assert.assertEquals(new Integer(1), result.getFirst());
24
+        Assert.assertEquals(new Integer(1000), result.getSecond());
25
+    }
26
+
27
+    @Test
28
+    public void testMin() throws Exception {
29
+        // Given an ArrayList of Integers
30
+        ArrayList<Integer> al = new ArrayList<>();
31
+        al.add(1);
32
+        al.add(5);
33
+        al.add(3);
34
+        al.add(4);
35
+        al.add(2);
36
+        al.add(0);
37
+        al.add(1000);
38
+        // When min is called assert that it gets the smallest item
39
+        Assert.assertEquals(new Integer(0), Arrays.min(al));
40
+    }
41
+
42
+    @Test
43
+    public void testMax() throws Exception {
44
+        // Given an ArrayList of Integers
45
+        ArrayList<Integer> al = new ArrayList<>();
46
+        al.add(1);
47
+        al.add(5);
48
+        al.add(3);
49
+        al.add(4);
50
+        al.add(2);
51
+        al.add(0);
52
+        al.add(1000);
53
+        // When min is called assert that it gets the largest item
54
+        Assert.assertEquals(new Integer(1000), Arrays.max(al));
55
+    }
56
+
57
+    @Test
58
+    public void testMinMax() throws Exception {
59
+        // Given an ArrayList of Integers
60
+        ArrayList<Integer> al = new ArrayList<>();
61
+        al.add(1);
62
+        al.add(5);
63
+        al.add(3);
64
+        al.add(4);
65
+        al.add(2);
66
+        al.add(0);
67
+        al.add(1000);
68
+        // When minMax is called
69
+        Pair<Integer> result = Arrays.minMax(al);
70
+        // Then it should return the first and last items
71
+        Assert.assertEquals(new Integer(0), result.min());
72
+        Assert.assertEquals(new Integer(1000), result.max());
73
+    }
74
+}