Reputation: 58786
I want to create a string list in Clojure equivalent to the following Java code:
List<String> cities = Arrays.asList(new String[] {"Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm" });
: but I am unsure about the exact syntax
Upvotes: 9
Views: 9277
Reputation: 50064
None of these are actually equivalent to:
List<String> cities = Arrays.asList(new String[] {"Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm" });
This is much closer to an answer to what was actually asked:
user=> (java.util.ArrayList. [1 2 3])
#<ArrayList [1, 2, 3]>
user=> (.get (java.util.ArrayList. [1 2 3]) 0)
1
Upvotes: 4
Reputation: 359826
(def cities ["Berlin" "Brussels" "Helsinki" "Madrid" "Oslo" "Paris" "Stockholm"])
http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips#Clojure_for_Java_Programmers
Upvotes: 8
Reputation: 91554
in general you can use the name of a collection you want to create as the function to create it (easy to remember eh?):
(vector "Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm")
(hash-map "Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris")
(sorted-map "Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris")
(array-map "Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris")
(hash-set "Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris" "Stockholm")
(sorted-set "Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris" "Stockholm")
or you can use into
if you dont know in advance what type you will need to create.
(defn make-trip [trip cities]
(into trip cities))
and pass it something like (make-trip #{"home"} ["Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris"])
Upvotes: 7
Reputation: 2489
Strictly speaking, examples provided above will produce vectors. List can be produced in the following way:
(list "Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm")
or shorter:
'("Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm")
In some cases this difference could be important.
Upvotes: 17
Reputation: 96395
How about:
(def cities ["Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm"])
The commas are optional.
Upvotes: 2