I have the following TreeMap
:
TreeMap<Long,String> gasType = new TreeMap<>(); // Long, "Integer-Double"
gasType.put(1L, "7-1.50");
gasType.put(2L, "7-1.50");
gasType.put(3L, "7-3.00");
gasType.put(4L, "8-5.00");
gasType.put(5L, "8-7.00");
Map<Integer,TreeSet<Long>> capacities = new TreeMap<>);
The key is of the form 1L
(a Long
), and value of the form "7-1.50"
(a String
concatenation of an int
and a double
separated by a -
).
I need to create a new TreeMap
where the keys are obtained by taking the int
part of the values of the original Map
(for example, for the value "7-1.50"
, the new key will be 7
). The value of the new Map
would be a TreeSet
containing all the keys of the original Map
matching the new key.
So, for the input above, the value for the 7
key will be the Set
{1L,2L,3L}.
I can do this without Stream
s, but I would like to do it with Stream
s. Any help is appreciated. Thank you.