java - Map reducing algorithm -
how can reduce
map<integer, list<integer>>
?
let reduce
'd map map each integer
value of list<integer>
unique , not duplicated.
example:
map a:
0 --> (0) 1 --> (1, 2) 2 --> (2, 1)
would reduce to:
0 --> (0) 1 --> (1, 2)
or
0 --> (0) 2 --> (2, 1)
notice either deletion of key 1 or 2 acceptable since produces reduced
map.
edit: when element maps itself, should remain separate, such 0 --> 0
. however, when multiple values have integer's in common, should merged.
try this
class reducedmap extends hashmap<integer, list<integer>> { private set<set<integer>> set = new hashset<set<integer>>(); @override public list<integer> put(integer key, list<integer> value) { set<integer> set = new hashset<integer>(value); if (!this.set.add(set)) { return new arraylist<integer>(set); } return super.put(key, value); } ...
Comments
Post a Comment