1 列表 List-创建List

基本介绍

Scala中的List 和Java List 不一样,在Java中List是一个接口,真正存放数据是ArrayList,而Scala的List可以直接存放数据,就是一个object,默认情况下Scala的List是不可变的,List属于序列Seq。

val List = scala.collection.immutable.List
object List extends SeqFactory[List]

创建List的应用案例

val list01 = List(1, 2, 3) //创建时,直接分配元素
println(list01)
val list02 = Nil //空集合
println(list02)

创建List的应用案例小结

1)List默认为不可变的集合 List

2) 在 scala包对象声明的,因此不需要引入其它包也可以使用

3) val List = scala.collection.immutable.List

4) List 中可以放任何数据类型,比如 arr1的类型为 List[Any]

5) 如果希望得到一个空列表,可以使用Nil对象, 在 scala包对象声明的,因此不需要引入其它包也可以使用

val Nil = scala.collection.immutable.Nil

2 列表 List-访问List元素

应用实例

3 列表 List-元素的追加

基本介绍

向列表中增加元素, 会返回新的列表/集合对象。注意:Scala中List元素的追加形式非常独特,和Java不一样。

方式1-在列表的最后增加数据

var list1 = List(1, 2, 3, "abc")
// :+运算符表示在列表的最后增加数据
val list2 = list1 :+ 4
println(list1) //list1没有变化
println(list2) //新的列表结果是 [1, 2, 3, "abc", 4]

方式2-在列表的最前面增加数据

var list1 = List(1, 2, 3, "abc")
// :+运算符表示在列表的最后增加数据
val list2 = 4 +: list1
println(list1) //list1没有变化
println(list2) //新的列表结果是?

方式3-在列表的最后增加数据

1) 符号::表示向集合中 新建集合添加元素。

2) 运算时,集合对象一定要放置在最右边,

3) 运算规则,从右向左。

4) ::: 运算符是将集合中的每一个元素加入到空集合中去

val list1 = List(1, 2, 3, "abc")
val list5 = 4 :: 5 :: 6 :: list1 :: Nil
println(list5)
//下面等价 4 :: 5 :: 6 :: list1
val list7 = 4 :: 5 :: 6 :: list1 ::: Nil
println(list7)

4 列表 ListBuffer

ListBuffer

ListBuffer是可变的list集合,可以添加,删除元素,ListBuffer属于序列

//追一下继承关系即可

Seq var listBuffer = ListBuffer(1,2)

val lst0 = ListBuffer[Int](1, 2, 3)

println("lst0(2)=" + lst0(2))
for (item <- lst0) {
println("item=" + item)
} val lst1 = new ListBuffer[Int]
lst1 += 4
lst1.append(5) lst0 ++= lst1
val lst2 = lst0 ++ lst1
val lst3 = lst0 :+ 5 println("=====删除=======")
println("lst1=" + lst1)
lst1.remove(1)
for (item <- lst1) {
println("item=" + item)
}

scala 数据结构(四):列表 List的更多相关文章

  1. Scala数据结构

    Scala数据结构 主要的集合特质 Scala同时支持可变集合和不可变集合,优先采用不可变集合.集合主要分为三大类:序列(List),集(set),映射(map).所有的集合都扩展自Iterable特 ...

  2. 学习javascript数据结构(四)——树

    前言 总括: 本文讲解了数据结构中的[树]的概念,尽可能通俗易懂的解释树这种数据结构的概念,使用javascript实现了树,如有纰漏,欢迎批评指正. 原文博客地址:学习javascript数据结构( ...

  3. redis 底层数据结构 压缩列表 ziplist

    压缩列表是列表键和哈希键的底层实现之一.当一个列表键只包含少量列表项,并且每个列表项要么就是小整数,要么就是长度比较短的字符串,redis就会使用压缩列表来做列表键的底层实现 当一个哈希键只包含少量键 ...

  4. Python学习笔记(3)--数据结构之列表list

    Python的数据结构有三种:列表.元组和字典 列表(list) 定义:list是处理一组有序项目的数据结构,是可变的数据结构. 初始化:[], [1, 3, 7], ['a', 'c'], [1, ...

  5. 小白学 Python(10):基础数据结构(列表)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  6. python学习4—数据结构之列表、元组与字典

    python学习4—数据结构之列表.元组与字典 列表(list)深灰魔法 1. 连续索引 li = [1,1,[1,["asdsa",4]]] li[2][1][1][0] 2. ...

  7. Python中3种内建数据结构:列表、元组和字典

    Python中3种内建数据结构:列表.元组和字典 Python中有3种内建的数据结构:列表.元组和字典.参考简明Python教程 1. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中 ...

  8. 10. Scala数据结构(上)-集合操作

    10.1 数据结构特点 10.1.1 Scala集合基本介绍 uml => 统一建模语言 1) Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问 两个主要的包 不可变集合:s ...

  9. Scala中的列表可以添加元素吗?

    列表或许是Scala程序中最常用到的数据结构了,其与数组非常相似,最重要的两点差别为: 1.列表是不可变的: 2.列表具有递归结构,而数组是连续的. 在实际使用中非常容易这样用: val a = Li ...

随机推荐

  1. LVS实现四层负载均衡

    LVS详解(思维导图) 1. 集群概述 1.1 Linux Cluster Linux Cluster的类型 LB(Load Balance) HA(High Available) HP(High P ...

  2. 代码点(code point)和代码单元(code units)

    1. 解释一 char:Java中,char类型为16个二进制位,原本用于表示一个字符.但后来发现,16位已经不够表示所有的字符,所以后来发展出了代码点表示字符的方法. 代码点(code point) ...

  3. PN532资料 NFC RFID V3模块

    最新PN532链接:  https://pan.baidu.com/s/1HyXk-VuF-24ZJ8zAVb9lcA 提取码: bgju 复制这段内容后打开百度网盘手机App,操作更方便哦

  4. 微信小程序入门基础

    微信小程序入门基础  视频教程(https://edu.csdn.net/course/detail/8456?pre_view=1) 第一章.认识小程序  1.工具的下载与安装  2.小程序代码构成 ...

  5. Linux系统结构详解(转)

    Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统.部分层次结构如图1-1所 ...

  6. oracle不足位数补零的实现sql语句

    select rpad('AAA',5,'0') from dual; 这样就可以了 [注意] 1.'AAA'为待补字符:5表示补齐后的总字符长度:0表示不足时补什么字符 2.rpad是右侧补0,左侧 ...

  7. 35 _ 队列1 _ 什么是队列.swf

    队列是一种可以实现一个先进先出的存储结构 什么是队列? 队列(Queue)也是一种运算受限的线性表.它只允许在表的一端进行插入,而在另一端进行删除.允许删除的一端称为队头(front),允许插入的一端 ...

  8. robot framework使用小结(一)

    项目组要用到robot framework验收web,因此花了两天时间了解了一下这个框架.我把网上各位大侠分享的内容整理成一个小小demo,参考的出处没有列出来,在此一并感谢各位. demo仍旧是打开 ...

  9. Cannot resolve symbol window

    参照官网执行如下代码的时候,报了Cannot resolve symbol window错误. val windowedCounts = words.groupBy( window($"ti ...

  10. ajax前后端交互原理(7)

    7.ajax函数封装 7.1.实例引入 需求: 每秒钟请求一次服务器 获取到数据 实现: 把ajax进行封装 <!DOCTYPE html> <html> <head&g ...