zoukankan      html  css  js  c++  java
  • How do I add elements to a Scala List?

    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.

  • 相关阅读:
    新概念英语(1-121)The man in a hat
    新概念英语(1-119)who call out to the thieves in the dark?
    画像分析(1-1)如何为客户画像?
    大数据分析师
    英语词汇(2)fall down,fall off和fall over
    把梳子卖给和尚的故事
    洛谷P1970 花匠(dp)
    2018.10.24模拟赛2解题报告
    2018.10.24模拟赛1解题报告
    洛谷P1941 飞扬的小鸟(背包 dp)
  • 原文地址:https://www.cnblogs.com/seaspring/p/5645222.html
Copyright © 2011-2022 走看看