什么是Swift数组的等效Java集合?

时间:2016-06-10 16:53:44

标签: java arrays swift

我注意到Java有很多集合类型,我不确定使用哪一种。我来自Swift编程背景。与Swift数组最接近或等效的Java集合是什么?从我的研究,ArrayList,似乎是最接近的。我只是想证实这一点。

1 个答案:

答案 0 :(得分:4)

Java中的omax - omin接口确实公开了类似于Swift Array结构的功能。

Java提供了List的几种实现:

  1. AbstractList
  2. AbstractSequentialList
  3. ArrayList
  4. AttributeList
  5. CopyOnWriteArrayList
  6. LinkedList
  7. RoleList
  8. RoleUnresolvedList
  9. Stack
  10. Vector
  11. 每个任务都针对某种任务进行了特别优化,因此您应该选择最适合您需求的任务。

    最后是的,List可能是最常用的:我也经常在切换到Swift之前使用它。

    Class vs Struct

    请记住,前面的列表是关于Java ,而Swift数组是 struct 。关于这两种类型的行为方式存在重要差异(参考类型与价值类型)。

    E.g。在Swift中,当您将数组分配给另一个变量时,实际上是在创建它的副本

    ArrayList

    在Java写作中

    let fruits = ["Apple", "Orange", "Kiwi"]
    var otherFruits = fruits
    otherFruits.removeFirst()
    
    print(fruits) // ["Apple", "Orange", "Kiwi"]
    print(otherFruits) // ["Orange", "Kiwi"]
    

    您只需创建对相同数组的另一个引用。  因此,在这种情况下,您对List<String> fruits = ... List<String> otherFruits = fruits 所做的更改将在fruits中显示(反之亦然)。