• How to add elements to a List in Scala


    Scala List FAQ: How do I add elements to a Scala List?

    This is actually a trick question, because you can't add elements to a ScalaList; it's an immutable data structure, like a Java String.

    Prepending elements to Scala Lists

    One thing you can do when working with a Scala List is to create a newList from an existing List. This sort of thing is done often in functional programming, and the general approach looks like this:

    scala> val p1 = List("Kim")
    p1: List[String] = List(Kim)
    
    scala> val p2 = "Julia" :: p1
    p2: List[String] = List(Julia, Kim)
    
    scala> val p3 = "Judi" :: p2
    p3: List[String] = List(Judi, Julia, Kim)
    

    Those examples show how to create a series of lists. The initial list namedp1 contains one string, then p2 contains two strings, and finally p3 contains three strings.

    While that approach looks cumbersome in a small example, it makes sense in larger, real-world code. You can see more/better examples of this approach in my tutorial titled, Scala List class examples.

    Use a ListBuffer when you want a "List" you can modify

    If you want to use a Scala sequence that has many characteristics of a Listand is also mutable (you can add and remove elements in it), use theListBuffer class instead, like this:

    import scala.collection.mutable.ListBuffer
    
    var fruits = new ListBuffer[String]()
    fruits += "Apple"
    fruits += "Banana"
    fruits += "Orange"
    

    Then convert it to a List if/when you need to:

    val fruitsList = fruits.toList
    

    Scala REPL example

    Here's what this List and ListBuffer example looks like using the Scala command line (REPL):

    scala> import scala.collection.mutable.ListBuffer
    import scala.collection.mutable.ListBuffer
    
    scala> var fruits = new ListBuffer[String]()
    fruits: scala.collection.mutable.ListBuffer[String] = ListBuffer()
    
    scala> fruits += "Apple"
    res0: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple)
    
    scala> fruits += "Banana"
    res1: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple, Banana)
    
    scala> fruits += "Orange"
    res2: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple, Banana, Orange)
    
    scala> val fruitsList = fruits.toList
    fruitsList: List[String] = List(Apple, Banana, Orange)
    

    More functional ways to work with Scala lists

    Depending on your needs, there are other, "more functional" ways to work with Scala lists, and I work through some of those in my Scala List examples. But for my needs today, I just wanted to work with a Scala Listlike I'd work with a Java List (ArrayListLinkedList), and this approach suits me.

  • 相关阅读:
    总结一下矩阵的基本操作
    洛谷|P4281 [AHOI2008]紧急集合 / 聚会
    CQYZ OJ|Contest 133|祖孙询问
    博客主题分享
    USACO1.1|黑色星期五Friday the Thirteenth
    USACO1.1.2|贪婪的送礼者
    POJ1664|DFS水题
    树状数组的区间查询与区间修改
    N0lP2018爆零记录
    A了一道dijkstra板子
  • 原文地址:https://www.cnblogs.com/seaspring/p/5645202.html
Copyright © 2020-2023  润新知