ConcurrentHashMap/ConcurrentMap/Map.compute (original) (raw)

Joe Bowbeer joe.bowbeer at gmail.com
Tue Jan 8 22:47:10 PST 2013


In the javadoc for Map.compute in b72, there is an error in the sample snippet:

http://download.java.net/lambda/b72/docs/api/java/util/Map.html

Attempts to compute a mapping for the specified key and its current mapped

value (or null if there is no current mapping). For example, to either create or append a String msg to a value mapping: map.compute(key, (k, v, msg) -> (v == null) ? msg : v.concat(msg))

Error: BiFunction does not accept three arguments. In particular, msg is extraneous. It should be defined in the lexical scope?

Btw, I pondered how to efficiently use compute() or merge() to simulate a multi-map and I eventually gave up.

I eventually wrote the following, which accumulates lists of anagrams, given a list of words:

r.lines().forEach(s -> map.computeIfAbsent(key(s), k -> new ArrayList<>()).add(s));

Where key() returns the canonical key for a given word, and r is a BufferedReader for the dictionary file.

The following line prints the lists of anagrams:

map.values().stream().filter(v -> v.size() > 1).forEach(v -> System.out.println(v));

On Mon, Dec 17, 2012 at 4:48 AM, Doug Lea <dl at cs.oswego.edu> wrote:

A fixed-up successfully jdk8-javadoc'ed version of Map is now at http://gee.cs.oswego.edu/dl/**wwwtmp/apis/Map.java<http://gee.cs.oswego.edu/dl/wwwtmp/apis/Map.java> with displayable javadoc at: http://gee.cs.oswego.edu/dl/**wwwtmp/apis/java/util/Map.html<http://gee.cs.oswego.edu/dl/wwwtmp/apis/java/util/Map.html> Comments? Complaints? If not, feel free to integrate. (Arne: thanks for pointing out that "merge" was mangled.) Side note about this and a few other upcoming cases: We must keep j.u.c sources independent, so normally commit to jsr166 and then integrate into openjdk. But ad-hoc mechanics seem the only way to deal with updates to existing files. Handing off is likely nicer than directly committing into lambda. -Doug



More information about the lambda-libs-spec-observers mailing list