Scala学习笔记
来源:互联网 发布:mac版qq文件夹在哪里 编辑:程序博客网 时间:2024/06/14 02:35
第3章 数组相关操作a1 29
3.1 定长数组 29
Array
val a = Array('a','b','c')
a: Array[Char]
3.2 变长数组:数组缓冲 30
import scala.collection.mutable.ArrayBuffer
ArrayBuffer
val b = ArrayBuffer[Int]() //声明空数组
b += 1 //尾端添加元素
b += (1,2,3) //添加多个元素
b ++= Array(6,7,8) //添加新数组
b.trimEnd(5) //移除最后5个元素
b.insert(2, 6) //在下标2之前插入元素6
b.insert(2, 7,8,9) //在下标2之前插入多个元素
b.remove(2) //删除下标2的元素
b.remove(2, 3) //删除从下标2开始,3个的元素
b.toBuffer //数组缓冲
3.3 遍历数组和数组缓冲 31
第一种遍历 直接数组赋值给循环变量
for (i <- a){
println(i)
}
第二种遍历 foreach套路
a.foreach(println)
第三种遍历 原始方式遍历数组下标,根据下标输出
for(i <- 0 until a.length){
println(i)
}
3.4 数组转换 32
可以使用for(i <- 表达式 if 守卫) yield 推导式方式将数组转换成想要的结果
或者 map filter 等套路
3.5 常用算法 34
sum
min
max
(Array/ArrayBuffer)sortWith(_>_) //排序
mkString
这一部分当时记得太科幻,一下没理解出来,后续补上
3.6 解读scaladoc 35
3.7 多维数组 37
3.8 与java的互操作 37
作业
1.
val a = for(i <- 1 to Random.nextInt(5)+1) yield Random.nextInt
2.数值数组中,奇数偶数交换
val a = ArrayBuffer(1,2,3,4,5,6,7,8,9,10)
val b = a.filter(_%2==0)
for(i <- 1 to b.length*2 by 2) yield b.insert(i,i)
b.foreach(println)
val a = Array(1,2,3,4,5,6,7,8,9,10)
def reverA(arr: Array[Int]) ={
for(i <- a.indices by 2){
val t = arr(i)
arr(i) = arr(i + 1)
arr(i + 1) = t
}
}
reverA(a)
a.foreach(println)
4.给定一个整数数组,产出一个新的数组,包含元数组中的所有正值,以原有顺序排列,之后的元素都是所有零或负值,以原有顺序排列
5.计算Array[Double]数组中的平均值
val a = Array(1.3,23.2,54.1,3.2)
print(a.sum/a.length)
6.反序排列
val c = ArrayBuffer(1,2,3,4,5)
c.reverse.foreach(print)
7.去重
val b = Array(1,2,3,4,5,5)
b.distinct.foreach(print)
8,一个有正数与负数的数组,去除数组中除一个负数以外的所有负数
//传统迭代方式
// var first = true
// var n = a.length
// var i = 0
//
// while (i < n) {
// if (a(i) >= 0) {
// i += 1
// } else {
// if (first) {
// first = false
// i += 1
// } else {
// a.remove(i)
// n -= 1
// }
// }
// }
// a.foreach(println)
//另一种方式
varfirst = true
varindexes = for (i <-a.indices if first || a(i) >=0)yield {
if(a(i) <0) first = false
i
}
valb = for(j <-indexes) yielda(j)
b.foreach(println)
9.找出数组中所有正数,负数的下标
vala = ArrayBuffer(1, -2, -3,4, 5, 6, -7)
valb = for (i <-a.indices if a(i) < 0) yield i
valc = for (i <-a.indices if a(i) > 0) yield i
println(b)
- Scala学习笔记1
- Scala学习笔记2
- scala语言学习笔记
- Scala学习笔记
- scala学习笔记01
- Scala学习笔记02
- Scala学习笔记03
- Scala学习笔记04
- scala学习笔记:集合
- scala学习笔记01
- Scala学习笔记02
- Scala学习笔记03
- Scala学习笔记04
- Scala学习笔记
- Scala开发学习笔记
- Scala学习笔记一
- Scala学习笔记二
- Scala学习笔记三
- 跨域总结
- ACM结课总结
- Docker 删除<none>镜像
- 我把我用R写的第一个爬虫就献给了国家
- 【51Nod】1095 Anigram单词
- Scala学习笔记
- mongdb的查询深入
- This
- 开源搜索平台选型:ElasticSearch、Solr
- LeetCode 53. Maximum Subarray
- Servlet之生命周期
- 原型和原型链继承
- [DP]392. Is Subsequence
- Java学习路线之基础篇