我想创建Clojure中等价的字符串列表下面的Java代码:如何在Clojure中创建一个字符串列表?
List<String> cities = Arrays.asList(new String[] {"Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm" });
:但我不确定确切的语法
我想创建Clojure中等价的字符串列表下面的Java代码:如何在Clojure中创建一个字符串列表?
List<String> cities = Arrays.asList(new String[] {"Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm" });
:但我不确定确切的语法
严格地说,上面提供将产生的载体的例子。列表可以通过以下方式产生:
(list "Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm")
或更短:
'("Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm")
在某些情况下,这种差异可能是非常重要的。
如何:
(def cities ["Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm"])
中的逗号是可选的。
(def cities ["Berlin" "Brussels" "Helsinki" "Madrid" "Oslo" "Paris" "Stockholm"])
http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips#Clojure_for_Java_Programmers
一般你可以使用你想创建作为函数来创建一个集合的名称(易记吧?):
(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")
,或者您可以使用into
如果你不知道提前你需要创建什么类型。
(defn make-trip [trip cities]
(into trip cities))
,并通过它像(make-trip #{"home"} ["Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris"])
这些都不是实际上相当于:
List<String> cities = Arrays.asList(new String[] {"Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm" });
这是非常接近的答案,到底是什么,问道:
user=> (java.util.ArrayList. [1 2 3])
#<ArrayList [1, 2, 3]>
user=> (.get (java.util.ArrayList. [1 2 3]) 0)
1
至少在较新的Java版本中,您可以使用`Arrays.asList(“Berlin”,“Brussels”,“Hel索契“,”马德里“,”奥斯陆“,”巴黎“,”斯德哥尔摩“)。 – ponzao 2011-02-23 08:43:05
[将Clojure数据结构转换为Java集合]可能的重复(http://stackoverflow.com/questions/4313505/converting-clojure-data-structures-to-java-collections) – 2012-08-11 09:23:52