Simran Bhutani 6 anos atrás
pai
commit
03eed1704f

+ 95
- 1
src/main/java/com/zipcodewilmington/arrayutility/ArrayUtility.java Ver arquivo

@@ -1,7 +1,101 @@
1 1
 package com.zipcodewilmington.arrayutility;
2 2
 
3
+import java.lang.reflect.Array;
4
+import java.util.*;
5
+import java.util.function.Consumer;
6
+import java.util.stream.Stream;
7
+
3 8
 /**
4 9
  * Created by leon on 3/6/18.
5 10
  */
6
-public class ArrayUtility {
11
+public class ArrayUtility <T>{
12
+
13
+    T[] array;
14
+
15
+    public ArrayUtility(T[] array)
16
+    {
17
+        this.array= array;
18
+    }
19
+
20
+
21
+
22
+    Integer occurrences;
23
+
24
+
25
+    public Integer countDuplicatesInMerge(T[] arrayToMerge, T valueToEvaluate) {
26
+
27
+        List<T> list= new ArrayList<T>(Arrays.asList(array));
28
+
29
+        list.addAll(Arrays.asList(arrayToMerge));
30
+
31
+//        array = (T[]) Stream.concat(Arrays.stream(array), Arrays.stream(arrayToMerge))
32
+//                .toArray(String[]::new);
33
+        Integer count = 0;
34
+        for(T dup: list){
35
+
36
+            if(dup.equals(valueToEvaluate)){
37
+                count++;
38
+            }
39
+
40
+        }
41
+
42
+            return count;
43
+    }
44
+
45
+    public T getMostCommonFromMerge(T[] arrayToMerge) {
46
+
47
+        List<T> list= new ArrayList<T>(Arrays.asList(array));
48
+
49
+        list.addAll(Arrays.asList(arrayToMerge));
50
+
51
+
52
+        Map<T, Integer> map = new HashMap<>();
53
+
54
+        for (T t : list) {
55
+            Integer val = map.get(t);
56
+            map.put(t, val == null ? 1 : val + 1);
57
+        }
58
+
59
+        Map.Entry<T, Integer> max = null;
60
+
61
+        for (Map.Entry<T, Integer> e : map.entrySet()) {
62
+            if (max == null || e.getValue() > max.getValue())
63
+                max = e;
64
+        }
65
+
66
+        return max.getKey();
67
+
68
+
69
+    }
70
+
71
+    public Integer getNumberOfOccurrences(T valueToEvaluate) {
72
+
73
+        List<T> list= new ArrayList<T>(Arrays.asList(array));
74
+        Integer occurrences = Collections.frequency(list, valueToEvaluate);
75
+
76
+            return occurrences;
77
+    }
78
+
79
+    public T[] removeValue(T valueToRemove) {
80
+
81
+        List<T> list = new ArrayList<>(Arrays.asList(array));
82
+        List<T> list2 = new ArrayList<>();
83
+        Consumer<T> consumer = (n) -> {
84
+            if (n != valueToRemove) {
85
+                list2.add(n);
86
+            }
87
+
88
+        };
89
+            list.forEach(consumer);
90
+
91
+            T[] object = (T[]) Array.newInstance(this.array.getClass().getComponentType(), list2.size());
92
+
93
+
94
+
95
+
96
+
97
+        return (T[]) list2.toArray(object);
98
+
99
+    }
100
+
7 101
 }

+ 0
- 1
src/test/java/com/zipcodewilmington/arrayutility/RemoveValueTest.java Ver arquivo

@@ -1,6 +1,5 @@
1 1
 package com.zipcodewilmington.arrayutility;
2 2
 
3
-import com.zipcodewilmington.UnitTestingUtils;
4 3
 import org.junit.Test;
5 4
 
6 5
 /**