Suppose we were given the following two arrays
String[] keys = new String[] {"a", "b", "c", "aa", "d", "b"} int[] values = new int[] { 1 , 2 , 3 , 4 , 5 , 6 }
And combining these 2 arrays in a HashTable, we get the following
// pseudo-code Map<String, Integer> dictionary = new HashTable<>( ("a" => 1) ("b" => 8) // because "b" appeared in index 1 and 5 ("c" => 3) ("aa" => 4) ("d" => 5) );
How can we do this using java style lambda?
So far I have the following:
// this loops through the range given (used for index start and end) // and sums the values of duplicated keys tree.listMap = IntStream.range(range[0], range[1]).boxed().collect( Collectors.toMap(i - > dictionary[i], i - > i + 1, Integer::sum, TreeMap::new) );
However, I would like to take 2 arrays, combine them by key and value, where value is the sum of all values ββfor duplicated keys. How can we do this?
source share