Her*_*ton 13 scala mutable scala-collections
我正在查看API,并且:+方法返回一个新的LinkedList.append方法只允许附加另一个链表.+ =方法需要var才能工作.如果LinkedList是可变的,为什么有人会需要这些?这有什么疯狂的?
如果我在Java中有这样的东西
final LinkedList myList = new LinkedList<String>();
mylist.add("balh");
Run Code Online (Sandbox Code Playgroud)
如何在Scala中实现相同的功能?
Deb*_*ski 10
如果append只能拿一个LinkedList然后为什么不使用
mylist append LinkedList("something")
Run Code Online (Sandbox Code Playgroud)
要么
mylist append LinkedList(otherContainer: _*)
Run Code Online (Sandbox Code Playgroud)
我认为有理由只允许其他LinkedLists append,因为这可以保证以下内容:
l1 = LinkedList(1, 2, 3)
l2 = LinkedList(4)
l3 = LinkedList(5)
l1 append l2
// l1 == LinkedList(1, 2, 3, 4)
// l2 == LinkedList(4)
l2 append l3
// l1 == LinkedList(1, 2, 3, 4, 5)
// l2 == LinkedList(4, 5)
// l3 == LinkedList(5)
Run Code Online (Sandbox Code Playgroud)
您可以使用a Buffer来构建值并使用在数据结构中转换它mapResult.
//Create a buffer which will build a linked list
val buf = new ArrayBuffer[String] mapResult { xs => LinkedList( xs:_* ) }
//You can append elements with +=, it is overriden to allow its use on a val
buf += "Something"
buf += "else"
//At the end you get your list
val lst = buf.result
// lst == LinkedList(Something, else)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5470 次 |
| 最近记录: |