IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> scala数据集合 -> 正文阅读

[Java知识库]scala数据集合

目录

数据集合类型

不可变数组

可变数组

不可变列表List

可变列表List

不可变Set

可变Set

不可变Map

可变Map

元组


数据集合类型

scala的数据集合类型主要有数组(Array)、链表(List)、集合(Set)、映射(Map)、元组等。都分为可变以及不可变的集合,可变集合可以更新和拓展。不可变集合也能够更新和拓展,不过不可变集合是通过创建一个新的集合从而达到改变的效果。

不可变数组

数组是有序的,可重复的,可存放不同数据类型的数据集合。

创建数组的几种方式:

val array1:Array[Int] = new Array[Int](5)//基本格式,确定数组长度
val array2 = Array(1,2,3,4,5)//快速创建
val array3 = Array.ofDim[Int](3, 3)//使用ofDim创建多维3*3数组

遍历数组的几种方式

for (i <- array) {println(s"${i}.hello")}//for直接遍历数组
for (i <- 0 until array.length) {println(s"${i}.hello")}//利用长度遍历
//在Idea中会黄色显示,可以用下面索引遍历
for (i <- array.indices) {println(s"${i}.hello")}//for用indices遍历,索引遍历

数组增改查

array(2)//查找数组第3个
array(2)=8//赋值
val array1 = 1+: array :+2//在数组第一个加1,最后追加2,并传递给array1。因为不可变数组,所以必须再传递,数组本身没有发生变化

不可变数组不能直接打印

val array2 = Array(1,2,3,4,5)
println(array2)//这样打印的是数组的内存地址

可变数组

首先导入可变数组的包,创建可变数组:

import scala.collection.mutable.ArrayBuffer
val array:ArrayBuffer[Int] = ArrayBuffer[Int](5)

数组增删改查

array.+= (2)//在末尾追加2
array.append(4)//在末尾追加4
array.insert(1,2,3)//在1的下标位置插入2,3
array(1)=2//在1的下标位置更新为2
array.remove(3)//将第四个元素删除

可变数组可以直接打印

val array = ArrayBuffer(1,2,3,4,5)
println(array)//输出ArrayBuffer(1, 2, 3, 4, 5)

注:最好不要将两个可变数组赋值,这样会使后面对其中一个数组进行改变是,另一个 也会改变。可变数据的名称实际上指向的是数组的存储空间,两个相等,使他们指向的空间一样,值也会一样。

在使用中可变数组推荐使用关键字(调用函数)对数组进行更改,不可变数组推荐使用标识符(:+2)进行更改。

不可变列表List

不可变列表是数据有顺序,但是没有序列,可存储重复数据,可存储不同数据的的一种集合。

创建列表

val list1:List[Int] = ?List[Int](5)//创建长度为5的空列表
val list2 = List(1,2,3,4,5)

列表操作

val list2 = 1 :: 2 :: 3 :: 4 :: Nil//在空列表List中追加数据
val list3 = list2.+:(5)//在list2中末尾追加一个5
val list3 = list2 ::: list1//将list2,1 合并
list3.foreach(println)//遍历输出
println(list3(2))//输出list3的第三个,list这个方法底层是遍历输出第三个。没有序列的表现是不能够直接赋值修改

可变列表List

创建列表

 ? ?val list0:ListBuffer[Int] = ListBuffer[Int](5)//创建长度为5的空列表
 ? ?val list = ListBuffer(1,2,3,4)

列表操作

 ? ?list.append(5)//追加5
 ? ?list.insert(1,2)//在1位置插入2
 ? ?list(1)=4//修改直接赋值
 ? ?list.update(1,5)//修改
 ? ?list.remove(0)//删除数据

不可变Set

数据是无序的,而且数据不可重复,如果创建是有重复数据,最后输出只有一个。

 ? ?val set0:Set[Int] = Set[Int](5)//创建长度为5的空Set
 ? ?val set = Set(1,2,3,4,5)
 ? ?for (i <- set)(
 ? ? ?println(i)
 ?  )//遍历输出,无序的输出

可变Set

 ? ?val set = mutable.Set(1,2,3,4,5,3)//创建Set
 ? ?set += 7//增加元素
 ? ?set -= 5//删除元素
 ? ?val set2 =set.+(9)//赋值并增加元素
 ? ?for (i <- set2)(
 ? ? ?println(i)
 ?  )//创建Set
  }

不可变Map

是一个散列表,储存的内容是键值对(key-value),

 ? ?val map = Map("a" -> 12,"b" -> 42,"c" -> 52)//创建Map
 ? ?println(map)
 ? ?map.foreach(println)//遍历打印
 ? ?println(map.get("a"))//返回当前value
 ? ?println(map.getOrElse("d" , 0))//如果没有K=d,V=0
 ? ?println(map("a"))//输出K=a的v

可变Map

 ? ?val map1 = mutable.Map("a" -> 13,"b" -> 43,"c" -> 53)
 ? ?val map2 = mutable.Map("q" -> 13,"w" -> 43,"e" -> 53)
 ? ?map1.put("d" ,45)//添加元素
 ? ?map1.update("d" ,34)//将k=d的v改为34
 ? ?map1.remove("c")//删除元素
 ? ?map1 ++= map2//无则添加,有则修改值

元组

元组是一个可以存放不同数据类型的集合,是将多个无关的数据封装为一个整体。

 ? ?val tuple1 = (1,"qwe",23)//创建元组
 ? ?println(tuple1)//输出元组
 ? ?println(tuple1._1)//输出元组第一个值
 ? ?for (i <- tuple1.productIterator) {
 ? ? ?println(i)
 ?  }//遍历元组

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:41:08  更:2021-10-01 16:46:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:12:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码