Scala(四)【集合基础入门】
一.Array
package com.bigdata.scala.day01
/**
* @description: 不可变数组&&可变数组
* @author: HaoWu
* @create: 2020/7/24
*/
object $10_Array {
def main(args: Array[String]): Unit = {
//**************************不可变数组*********************************//
//1.创建
val arr1 = new Array[String](10) //方式一
val arr2 = Array[String]("aaa", "bbb", "ccc") //方式二
//2.新增
val arr3 = arr2.+:("ddd") //添加元素,返回新数组
val arr4 = arr2.++(arr3) //添加数组,返回新数组
arr4(0) = "eee" //修改元素
//3.查询
val str: String = arr4(0) //根据索引,获取单值
arr4.foreach(x => println(x)) //遍历
//4.删除
val arr5: Array[String] = arr2.drop(2) //删除前2个元素
//5.转可变数组
val buffer = arr5.toBuffer
//********************************可变数组*******************************//
//1.创建
import scala.collection.mutable.ArrayBuffer //导入可变的包
val muarr: ArrayBuffer[String] = new ArrayBuffer[String](10) //方式一
val muarr1: ArrayBuffer[String] = ArrayBuffer("aaa", "bbb", "ccc") //方式二
//2.新增
val muarr2 = muarr1.+:("eee") //添加元素,返回新数组
muarr1.+=:("eee") //可变数组添加单个元素
muarr1.append("hhh", "iii") //可变数组后添加个元素
muarr1.++=(ArrayBuffer("fff", "ggg")) //可变数组添加数组
muarr1.insert(1, "abc", "bcd") //从索引位置开始添加多个元素
//3.查询
muarr1.foreach(println(_))
//4.修改
muarr1(2) = "dfg" //根据索引更新单个元素
//5.删除
muarr1 - "aaa" //根据值,删除单个元素
muarr1.remove(1) //根据索引,删除单个元素
muarr1 --= ArrayBuffer("bbb", "ccc") //根据值,删除多个元素
val muarr11 = muarr1 -- ArrayBuffer("bbb", "ccc") //根据值,删除多个元素,返回新数组
//6.转不可变数组
val array = muarr1.toArray
//********************************多维数组*******************************//
//创建
val dimArr: Array[Array[Int]] = Array.ofDim[Int](2,3)
//遍历
dimArr.foreach(x=>x.foreach(y=>println(y)))
}
}
二. List
package com.bigdata.scala.day01
/**
* @description: 不可变List&&可变List
* @author: HaoWu
* @create: 2020/7/24
*/
object $09_List {
def main(args: Array[String]): Unit = {
//**************************不可变List*********************************//
//1.创建
val list = List(1, 2, 3, 4, 5, 6) //设置值
var list1: List[Int] = Nil //创建,设置空list
//2.新增
val list2 = list.+:(7) //在前添加单个元素,返回List
val list3 = list.:+(8) //在后添加单个元素,返回List
val list4 = list.::(9) //在后添加单个元素,返回List
val list5 = 9 :: list //在前添加单个元素,返回List
val list6 = list ::: List(1, 2, 3) //在后添加集合,返回List
val list7 = List(1, 2, 3) ::: list //在前添加集合,返回List
//3.查询
list.foreach(x => println(x))
//**************************可变List*********************************//
//1.创建
import scala.collection.mutable.ListBuffer //导包
val listBuffer = ListBuffer(1, 2, 3, 4, 5)
//2.新增
listBuffer.+=(1, 2, 3) //在后添加多个元素
listBuffer ++= List(7, 8, 9) //在后添加集合元素
//3.查询
listBuffer.foreach(x => println(x))
//4.删除
listBuffer.remove(1) //根据索引删除单个元素
listBuffer -= 4 //删除第一个元素,4代表第4个元素
listBuffer --= List(1,3,5) //删除包含集合中的元素
}
}
三.Set
package com.bigdata.scala.day01
/**
* @description: TODO
* @author: HaoWu
* @create: 2020年07月24日
*/
object $11_Set {
def main(args: Array[String]): Unit = {
//**************************不可变Set*********************************//
//1.创建
val set = Set(1, 2, 3, 4)
//2.新增
val set1 = set + (8, 9, 10) //添加元素,个数可变
val set2 = set ++ Set(4, 5, 6) //添加Set
//3.查询
set.foreach(println(_))
//4.删除
val set3 = set1 - (8, 9) //删除元素,个数可变
val set4 = set2 -- Set(4, 5) //删除Set
//**************************可变Set*********************************//
//1.创建
import scala.collection.mutable.Set //导包
val muSet = Set(1, 2, 3)
//2.新增
muSet += 4 //添加单个元素
muSet ++= Set(5, 6) //添加Set集合
//3.查询
muSet.foreach(x => println(x))
//4.删除
muSet -= 10 //删除单个元素
muSet --= Set(5,6) //删除Set集合
}
}
四.Tuple
元组一旦定义,元素不可以删除,不能修改。
package com.bigdata.scala.day01
/**
* @description: TODO
* @author: HaoWu
* @create: 2020年07月24日
*/
object $13_Tuple {
def main(args: Array[String]): Unit = {
//1.创建
val tuple = ("zhangsan", 20, "Beijing") //Tuple3类型
val tuple1 = ("name", "lisi") //对偶元祖,Tupl2类型
val tuple2 = ("name" -> "lisi")
val tuple3 = List[(String, Int, String)](
("zhangsan", 20, "beijing"),
("lisi", 30, "shenzhen")) //集合元素是元祖
//2.查询
val value1 = tuple._1
val value2 = tuple._2
val value3 = tuple._3
}
}
五.Map
package com.bigdata.scala.day01
/**
* @description: TODO
* @author: HaoWu
* @create: 2020年07月24日
*/
object $12_Map {
def main(args: Array[String]): Unit = {
//**************************不可变Map*********************************//
//1.创建
val map = Map[String, String](
"name" -> "zhangsan",
"age" -> "20",
"address" -> "BeiJing") //方式一
val map2 = Map[String, String](
("name", "lisi"),
("age", "30"),
("address", "ShenZhen")) //方式二
//2.新增/修改
val map11 = map.+("email" -> "1001", "id" -> "11") //添加元素
val map21 = map2 + (("dept", "11")) //添加元素
val map22 = map2.++(map) //添加Map
//3.查询
val value = map11.getOrElse("email", "null") //根据key获取值,key不存在值设null
map.foreach(x => println(x._1)) //遍历key
map.keys.foreach(x => println(x)) //遍历key
map.values.foreach(x => println(x)) //遍历value
//**************************可变Map***********************************//
//1.创建
import scala.collection.mutable.Map
val muMap = Map[String, String](
("name", "lisi"),
("age", "20")) //方式一
val muMap2 = Map[String, String](
("name", "lisi"),
("age", "30")) //方式二
//2.新增/修改
muMap += (("address", "Henan")) //添加单个元素
muMap2 += ("address" -> "Henan") //添加单个元素
//3.查询
val value1 = muMap.getOrElse("email", "null") //根据key获取值,key不存在值设null
muMap.foreach(x => println(x._1)) //遍历key
muMap.keys.foreach(x => println(x)) //遍历key
muMap.values.foreach(x => println(x)) //遍历value
//4.删除
muMap -= "name"
}
}
Scala(四)【集合基础入门】的更多相关文章
- Java 集合基础入门,看这篇就够了
集合 1.父接口:Collection java.util.Collection 是进行单对象保存的最大父接口,即每次利用 Collection 接口都只能保存一个对象信息.定义如下: public ...
- Scala(四) —— 集合
一.List var x = List(1,2,3,4) //x:List[Int] = List(1, 2, 3, 4) var y = List("x","y&quo ...
- MyBatis基础入门《四》接口方式.Select查询集合
MyBatis基础入门<四>接口方式.Select查询集合 描述: 在<MyBatis基础入门<二>Select查询>中有说过,SQLSession有两种用法,这里 ...
- Scala 基础入门【翻译】
原文地址 本文只是带你进入 Scala 的世界,包括安装.不可变量 val.可变量 var.定义类.集合(包括列表(list).集(set).映射(map))以及集合遍历和集合库(能达到并行/并发效果 ...
- MyBatis基础入门《十四》ResultMap子元素(association )
MyBatis基础入门<十四>ResultMap子元素(association ) 1. id: >> 一般对应数据库中改行的主键ID,设置此项可以提高Mybatis的性能 2 ...
- C#基础入门 四
C#基础入门 四 方法参数 值参数:不附加任何修饰符: 输出参数:以out修饰符声明,可以返回一个或多个给调用者: 如果想要一个方法返回多个值,可以用输出参数来处理,输出参数由out关键字标识,如st ...
- Swift语法基础入门四(构造函数, 懒加载)
Swift语法基础入门四(构造函数, 懒加载) 存储属性 具备存储功能, 和OC中普通属性一样 // Swfit要求我们在创建对象时必须给所有的属性初始化 // 如果没办法保证在构造方法中初始化属性, ...
- MyBatis基础入门《三》Select查询集合
MyBatis基础入门<三>Select查询集合 描述: 代码新增了一个MybatisUtil工具类,查询数据库返回集合的时候,接收数据的三种方式.由于代码会渐渐增多,未涉及改动过的文件不 ...
- FPGA基础入门篇(四) 边沿检测电路
FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...
随机推荐
- Unity——技能系统(二)
Unity技能系统(二) Unity技能系统(一) Demo展示: 五.技能管理和释放 1.CharacterSkillSystem 技能系统类,给外部(技能按钮,按键)提供技能释放方法: 技能释放逻 ...
- 如何系统学习C 语言(下)之 文件篇
我们所编写的程序源代码以及编译生成的可执行文件都属于文件.所以文件的实质就是存储在外部存储介质上的一段连续的二进制数据. c 语言程序对文件的处理采用文件流的形式,程序运行在内存中,而文件是存储在外部 ...
- super和this
super注意点: 1.super调用父类的构造方法,必须在构造方法的第一个 2.super必须只能出现在子类的方法或者构造方法中 3.super和this不能同时调用构造方法 this: 代表的对象 ...
- Mui中mui.openWindow()方法具体参数信息(内容来自Mui问题专区)
mui.openWindow({ url: 'xxx.html', //String类型,要打开的界面的地址 id: 'id', //String类型,要打开的界面的id styles: { //We ...
- go微服务框架Kratos笔记(一)入门教程
kratos简介 Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关功能及工具 本文基于kratos v2.0.3,windows平台,其他系统平台均可借鉴参考 环境搭建 Golang开发 ...
- 说透 Docker:虚拟化
本章内容将讲解 Docker 虚拟化.虚拟化本质.namespace.cgroups. Docker 虚拟化 关于Docker 本小节将介绍 Docker 虚拟化的一些特点. Docker 是一个开放 ...
- .NET 百万级 大数据插入、更新 ,支持多种数据库
功能介绍 (需要版本5.0.44) 大数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现 当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API 操作数据库 ...
- [atAGC051C]Flipper
对于这一个平面用$a_{x,y}$来表示,即$(x,y)$为黑色则$a_{x,y}=1$,否则$a_{x,y}=0$,之后定义$a$能生成$b$当且仅当$a$能够通过若干次操作后得到$b$ 令$p_{ ...
- [bzoj1084]最大子矩阵
用f[i][j][k]表示第一行前i个数,第二行前j个数选k个子矩形的答案,考虑转移:1.在第一行/第二行选择一个矩形2.当i=j时,可以选择一个两行的矩形注意要特判m=1的情况 1 #include ...
- c语言if语句是如何变成汇编代码的?
1. 要编译的测试代码: int a; int b = 3; int main(void) { if (3) a = 4; else b = 5; } 2. 词法分析 词法分析将c源代码解析成一个个的 ...