网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
运行成功,输出了我们赋予的东西。
package com.tipdm.scalaDemo
object p3 {
def main(args: Array[String]): Unit = {
val p1: List[String]= List("apples", "oranges", "pears")
println(p1)
}
}
b.整形
和上面的区别不大,仅仅改了赋予值的数据类型而已,现在运行试试。
package com.tipdm.scalaDemo
object p3 {
def main(args: Array[String]): Unit = {
val p1 = List(11, 22, 33)
println(p1)
}
}
c.::Nil
在scala中,可以使用“Nil”和“::”操作符来定义列表
可以看到,我们并没有定义p1的类型,只是在数值后面加上了::Nil,那输出会是什么呢?
显而易见,我放到这里,那肯定是List,那为什么会这样呢?
Nil代表一个空的List,它是List的结束标记。使用::
操作符可以将元素添加到List的前面。 在之前的文章中,我也说过了,这也是Scala的语言的特点,它会自己识别,这正是Scala语言灵活的体现。
2.set
a.set创建
在Scala中,Set是一种不可变的集合,它包含的元素是唯一的,也就是说它不允许有重复的元素。Scala 使用不可变Set集合,若想使用可变的Set集合则需要引入 scala.collection.mutable.Set包。
在运用scala.collection.mutable.Set包创建一个可变集合后,重复元素会直接强制降重,我们来看下输出。
可以看到p2原先的值应该是1,2,2,3,3。现在输出直接变成1,2,3了,它完成了一个降重工作。
b.set操作
你可以使用+
和-
操作符来添加和删除元素
来看看输出。
对于不可变的Set
,添加或删除元素会返回一个新的Set
,而原始的Set
不会被改变。对于可变的Set
,添加或删除元素会修改原来的Set
。
c.遍历set
在Scala中,我们可以使用foreach
方法来遍历Set
中的元素
输出看看
咱们的newp1被遍历输出了。
package com.tipdm.scalaDemo
object p4 {
def main(args: Array[String]): Unit = {
val p1 = Set(1, 2, 3, 4)
val newp1= p1 + 5
newp1.foreach(println)
}
}
3.map
在Scala中,Map是一种可迭代的键值对(key/value)结构集合,并且键在Map中是唯一的。
创建map,输出map
那该怎么输出呢?
可以通过键来访问Map
中的值,也可以直接打印,还可以用for遍历输出
三种方法,我们来看下输出效果
package com.tipdm.scalaDemo
object p4 {
def main(args: Array[String]): Unit = {
val p1 = Map("one" -> 1, "two" -> 2, "three" -> 3)
val p2 = p1("one")
println(p2)
println(p1)
for ((key, value) <- p1) {
println(s"$key -> $value")
}
}
}
三、元组
在Scala中,元组(Tuple)是一种固定大小的有序集合,可以包含不同类型的元素。元组是轻量级的,用于将多个项组合成一个单一的对象,而不必创建自定义的类。
val p1 = (1, "Hello")
这是两种元素的元组
val p2 = (1, "Hello", true, 3.14)
这是四种元素的元组
在元组中,我们可以通过使用下划线 _1
、_2
、_3
等来访问元组中的元素,其中数字表示元素的位置(从1开始)。也可以直接打印。
来看看运行效果
可以看到_1下的元素1被成功赋给了s1
package com.tipdm.scalaDemo
object p4 {
def main(args: Array[String]): Unit = {
val p1 = (1, "Hello", true, 3.14)
println(p1)
val s1 = p1._1
println(s1)
}
}
拓展-集合方法
1.List集合方法
方法名 | 描述 | 示例 |
---|---|---|
::: | 连接两个或多个列表 | val list1 = List(1, 2, 3); val list2 = List(4, 5, 6); val result = list1 ::: list2 |
+: 或 :: | 在列表开头添加元素 | val list = 1 :: (2 :: (3 :: Nil)) |
isEmpty | 判断列表是否为空 | val list = List(); val isEmpty = list.isEmpty |
head | 获取列表的第一个元素 | val list = List(1, 2, 3); val firstElement = list.head |
tail | 获取列表除第一个元素外的其余部分 | val list = List(1, 2, 3); val rest = list.tail |
take(n) | 取出列表的前n个元素 | val list = List(1, 2, 3, 4, 5); val taken = list.take(3) |
takeRight(n) | 取出列表的后n个元素 | val list = List(1, 2, 3, 4, 5); val takenRight = list.takeRight(2) |
drop(n) | 删除列表的前n个元素 | val list = List(1, 2, 3, 4, 5); val dropped = list.drop(2) |
dropRight(n) | 删除列表的后n个元素 | val list = List(1, 2, 3, 4, 5); val droppedRight = list.dropRight(2) |
filter(predicate) | 过滤出符合条件的元素 | val list = List(1, 2, 3, 4, 5); val filtered = list.filter(_ % 2 == 0) |
indexOf(element, [from]) | 从指定位置开始查找元素的索引 | val list = List(1, 2, 3, 4, 5); val index = list.indexOf(3) |
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
54)]
[外链图片转存中…(img-pxlbTWJx-1715423233354)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新