21
votes

Initially Project Coin had enhanced support for collections e.g. list[3] instead of list.get(3) and map["hello"] = 27 instead of map.put("hello", 27) but they were not in jdk7. Are they going to be in jdk8? I could not find a definitive answer for either yes or no.

1
AFAIK Project Coin only applied to Java 7. It might apply to Java 8 but I haven't heard anything. Last time they only took the simplest changes to implement. Given adding closures and virtual extensions etc. are likely to be big tasks, I suspect they won't have the resources.Peter Lawrey
Is there a roadmap somewhere I can see what features are in what state and which versions they go into?pathikrit
The List of JDK 8 Features does not include these.Edwin Dalorzo
Also, in the project Coin mailing list Joe Darcy answered this question already. There he explians why these will not be included.Edwin Dalorzo

1 Answers

17
votes

Brian Goetz briefly mentions list, set, map (and other possible) literals in this post in the Project Lambda mailing list from 30th May:

http://mail.openjdk.java.net/pipermail/lambda-dev/2012-May/004979.html

To illustrate what I mean by "we could do better", here's an alternative proposal that gets far more mileage out of #: structured literals. While these plans are not in place for 8, we have already stated our desire to add structured literals for lists, maps, sets, etc. # as a prefix symbol, combined with delimiters, gives us a far higher return-on-syntax as a structured literal builder (as a bonus, # is already associated with structured literals in a lot of languages, going all the way back to many early assembly languages where # was the immediate addressing mode.)

So to me it seems that even the collection literals won't make it into JDK 8, let alone the get/set/put operators. It's a pity.

Also I do not see anything relating to collection literals or new operators in the list of JDK 8 milestones:

http://openjdk.java.net/projects/jdk8/milestones