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.

  • 相关阅读:
    步步为营 SharePoint 开发学习笔记系列总结
    Type 关键字解读
    C# 利用反射方便取得DbDataReader里的值
    WCF 开发学习笔记
    用状态模式实现状态机工作流
    步步为营UML建模系列总结
    策略模式实现支持多种类数据库的DBHelp
    步步为营 .NET 设计模式学习笔记系列总结
    BPEL 语言介绍和应用
    步步为营 .NET 代码重构学习笔记系列总结
  • 原文地址:https://www.cnblogs.com/seaspring/p/5645222.html
Copyright © 2011-2022 走看看