列表或许是Scala程序中最常用到的数据结构了,其与数组非常相似,最重要的两点差别为:

1.列表是不可变的;

2.列表具有递归结构,而数组是连续的。

在实际使用中非常容易这样用:

val a = List("String")
a.add("String")

  IDEA不会报错,甚至也会给出你add方法的提示,如

但是在运行中就会报错!

对于初学者来说,首先想到的应该是去查查scala的List如何新增数据,很容易就可以得到答案  ::

def ::(x: A): List[A]

在列表开头添加元素

  在使用::以及:+之后应该都没得到想要的结果,因为是产生了一个新的List,并不是向现有List中添加元素。

在scala中如果需要实现给现有List增加元素的需求,那么就只能

val str : util.ArrayList[T] = new util.ArrayList()
str.add(T)

  对,就是调用Java的List,这样也算是一种解决方案吧。

Scala中的列表可以添加元素吗?的更多相关文章

  1. scala中常用但其他语言不常见的符号含义

    本文旨在介绍Scala在其他语言中不太常见的符号含义,帮助理解Scala Code. 随着我对Scala学习的深入,我会不断增加该篇博文的内容. 修改记录 ----2016.11.23  新增scal ...

  2. scala中常用特殊符号

    参考资料: scala中常用但其他语言不常见的符号含义 Scala学习六:Scala中的特殊字符 =>(匿名函数) 参考文档:scala => 用法 匿名函数 => 匿名函数,在Sp ...

  3. scala 中的集合类

    集合最重要的继承路线 —— Traversable -> Iterable -> Seq -> LinerSeq -> List Traversable 中的公有方法: 分类 ...

  4. Scala中的Map集合

    1. Map集合 1.1 Scala中的Map介绍 Scala中的Map 和Java类似,也是一个散列表,它存储的内容也是键值对(key-value)映射,Scala中不可变的Map是有序的,可变的M ...

  5. Scala 中的可变(var)与不可变(val)

    引言 Scala 中定义变量分为 var(可变变量)和 val(不可变变量) Scala 中集合框架也分为可变集合和不可变集合.比如 List(列表) 和 Tuple(元组)本身就是不可变的,set ...

  6. scala中的面向对象定义类,构造函数,继承

    我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面 ...

  7. scala入门教程:scala中的面向对象定义类,构造函数,继承

    我们知道scala中一切皆为对象,函数也是对象,数字也是对象,它是一个比java还要面向对象的语言. 定义scala的简单类 class Point (val x:Int, val y:Int) 上面 ...

  8. Scala中Zip相关的函数

    在Scala中存在好几个Zip相关的函数,比如zip,zipAll,zipped 以及zipWithIndex等等.我们在代码中也经常看到这样的函数,这篇文章主要介绍一下这些函数的区别以及使用. 1. ...

  9. Scala中的构造器

    Scala中的构造器 Scala中的构造器分为两类,主构造器和辅助构造器 主构造器是通过类名后面跟的括号里加参数列表来定义 辅助构造器是通过关键字this定义 定义一个无参主构造器 class rec ...

随机推荐

  1. sql从n月到m月数据汇总,没有数据,当月显示0

    做个备份 -- 按月份统计select date1, MONTHS, createtime, nvl(count2, 0)+count1 from ( SELECT TO_CHAR(ADD_MONTH ...

  2. D. Connected Components Croc Champ 2013 - Round 1 (并查集+技巧)

    292D - Connected Components D. Connected Components time limit per test 2 seconds memory limit per t ...

  3. 遍历二叉树 - 基于队列的BFS

    之前学过利用递归实现BFS二叉树搜索(http://www.cnblogs.com/webor2006/p/7262773.html),这次学习利用队列(Queue)来实现,关于什么时BFS这里不多说 ...

  4. Windows&Appium&Python自动化测试-环境搭建之安卓SDK

    一.摘要 本博文将详细讲述在Windows环境下的jdk安装.配置以及环境校验:安卓sdk安装.配置以及环境校验 二.安装包工具准备: jdk1.8.0(64 位) installer_r24.4.1 ...

  5. 对List<Map>里的map的某个属性重复的值进行处理的方法

    package test; import java.util.*;import java.util.stream.Collectors; public class Test5 { public sta ...

  6. asp.net 各种文件解析探索

    aspx ascx ashx 等等 准备写一个专题 还望各位批评指正,共同学习

  7. lnmp配置

    yum源切换 下载wegt工具 yum install -y wget 备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS- ...

  8. hierarchyviewer

    支持的版本更低

  9. docker学习---docker基础知识

    目录 docker的基础 1.安装docker 2.使用镜像 3.镜像迁移|导入和导出 4.docker Hub介绍 5.搭建私有镜像仓库 5.1.docker开源的镜像分发工具--docker Re ...

  10. Lua unpack函数用法

    unpack,接受一个table做个参数,然后按照下标返回数组的所有元素 unpack lua 版本 <= 5.1 local t = {nil , 3} retunrn unpack(t) / ...