Compare commits
3
Commits
163dd43118
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9f60c6714f | ||
|
|
4c2177d333 | ||
|
|
6a4ed200b8 |
@@ -1,5 +1,6 @@
|
||||
package practise1.comprehensive
|
||||
|
||||
|
||||
object Comprehensive {
|
||||
def main(args: Array[String]): Unit = {
|
||||
/*第 1 课综合题
|
||||
@@ -19,16 +20,16 @@ object Comprehensive {
|
||||
val score = 85
|
||||
|
||||
val evaluate =
|
||||
if (score >= 90 ) "优秀"
|
||||
else if (score >= 80) "良好"
|
||||
else if (score >= 60) "及格"
|
||||
else "不及格"
|
||||
if (score >= 90) "优秀"
|
||||
else if (score >= 80) "良好"
|
||||
else if (score >= 60) "及格"
|
||||
else "不及格"
|
||||
|
||||
println(
|
||||
s"""
|
||||
|${name},今年${age}岁
|
||||
|成绩:${score}
|
||||
|评价:${evaluate}""".stripMargin)
|
||||
|${name},今年${age}岁
|
||||
|成绩:${score}
|
||||
|评价:${evaluate}""".stripMargin)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package practise1.demo
|
||||
|
||||
|
||||
object Demo1VarAndVal {
|
||||
def main(args: Array[String]): Unit = {
|
||||
|
||||
@@ -8,14 +9,13 @@ object Demo1VarAndVal {
|
||||
// name = "Tom" // ❌ 不允许修改
|
||||
|
||||
var age = 25
|
||||
age = 26 // ✅ 可以修改
|
||||
age = 26 // ✅ 可以修改
|
||||
println(name)
|
||||
println(age)
|
||||
|
||||
println("=================================")
|
||||
|
||||
|
||||
|
||||
println("=================================")
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
package practise1.demo
|
||||
|
||||
|
||||
object Demo2Type {
|
||||
def main(args: Array[String]): Unit = {
|
||||
//2. 类型
|
||||
//
|
||||
//Scala 支持自动推断类型:
|
||||
|
||||
val name = "xiaoMing" // String
|
||||
val age = 25 // Int
|
||||
val price = 19.99 // Double
|
||||
val flag = true // Boolean
|
||||
val name = "xiaoMing" // String
|
||||
val age = 25 // Int
|
||||
val price = 19.99 // Double
|
||||
val flag = true // Boolean
|
||||
|
||||
// 也可以明确指定:
|
||||
val name2: String = "xiaoMing"
|
||||
|
||||
@@ -1,23 +1,22 @@
|
||||
package practise1.demo
|
||||
|
||||
object Demo4If {
|
||||
def main(args: Array[String]): Unit = {
|
||||
|
||||
// Scala 的 if 和 Java 类似
|
||||
val age = 20
|
||||
|
||||
if(age >=18){
|
||||
if (age >= 18) {
|
||||
println("成年人")
|
||||
}else{
|
||||
} else {
|
||||
println("未成年")
|
||||
}
|
||||
|
||||
// 但是 Scala 有一个非常重要的特点:if 本身就是一个表达式,可以返回值
|
||||
|
||||
|
||||
val result = if(age >= 18){
|
||||
val result = if (age >= 18) {
|
||||
"成年人"
|
||||
}else{
|
||||
} else {
|
||||
"未成年人"
|
||||
}
|
||||
|
||||
|
||||
@@ -2,20 +2,21 @@ package practise1.exercises
|
||||
|
||||
object Exercises1 {
|
||||
def main(args: Array[String]): Unit = {
|
||||
/* 练习 1:基本变量
|
||||
/* 练习 1:基本变量
|
||||
|
||||
创建三个变量:
|
||||
name = "Tom"
|
||||
age = 20
|
||||
salary = 15000.5
|
||||
创建三个变量:
|
||||
name = "Tom"
|
||||
age = 20
|
||||
salary = 15000.5
|
||||
|
||||
要求:
|
||||
输出:Tom今年20岁,工资是15000.5*/
|
||||
要求:
|
||||
输出:Tom今年20岁,工资是15000.5*/
|
||||
|
||||
val name = "Tom"
|
||||
val age = 20
|
||||
val salary = 15000.5
|
||||
|
||||
|
||||
println(s"${name}今年${age}岁,工资是${salary}")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
package practise1.exercises
|
||||
|
||||
import scala.util.Random
|
||||
|
||||
object Exercises4 {
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package practise9.demo
|
||||
|
||||
/*
|
||||
* 第 9 课:sortBy、sortWith、groupBy*/
|
||||
|
||||
//sortBy 基础用法
|
||||
object Demo1SortBy {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val nums = List(5, 2, 8, 1, 3)
|
||||
|
||||
val result = nums.sortBy(x => x)
|
||||
val result2 = nums.sortBy(+_)
|
||||
|
||||
println(result)
|
||||
println(result2)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package practise9.demo
|
||||
|
||||
/*
|
||||
* 按元组属性排序*/
|
||||
object Demo2SortByProperty {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val students = List(
|
||||
("Tom", 80),
|
||||
("Jack", 95),
|
||||
("Alice", 70)
|
||||
)
|
||||
val result = students.sortBy(x => x._2)
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package practise9.demo
|
||||
|
||||
/*
|
||||
* sortBy 配合 _ */
|
||||
object Demo3SortByUnderscore {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val students = List(
|
||||
("Tom", 80),
|
||||
("Jack", 95),
|
||||
("Alice", 70)
|
||||
)
|
||||
val result = students.sortBy(_._2)
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package practise9.demo
|
||||
|
||||
/*
|
||||
* sortBy 降序*/
|
||||
object Demo4SortByDescending {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val nums = List(5, 2, 8, 1, 3)
|
||||
|
||||
// 默认升序
|
||||
println(nums.sortBy(x => x))
|
||||
|
||||
val result = nums.sortBy(x => x).reverse
|
||||
println(result)
|
||||
|
||||
// -_ 就是 x => -x
|
||||
println(nums.sortBy(-_))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package practise9.demo
|
||||
|
||||
/*
|
||||
* sortWith 自定义比较*/
|
||||
object Demo5SortWith {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val nums = List(5, 2, 8, 1, 3)
|
||||
|
||||
val result = nums.sortWith((a, b) => a > b)
|
||||
/*
|
||||
* a 和 b 比较
|
||||
* ↓
|
||||
* 如果 a > b
|
||||
* ↓
|
||||
* a 放前面*/
|
||||
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package practise9.demo
|
||||
|
||||
/*
|
||||
* sortBy 与 sortWith 区别*/
|
||||
object Demo6SortByAndSortWith {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val students = List(
|
||||
("Tom", 80),
|
||||
("Jack", 95),
|
||||
("Alice", 70)
|
||||
)
|
||||
|
||||
// 按照成绩排序
|
||||
// 元素
|
||||
// ↓
|
||||
// 提取一个排序依据
|
||||
// ↓
|
||||
// 按照这个依据排序
|
||||
println(students.sortBy(_._2).reverse)
|
||||
|
||||
// 比较两个学生的成绩
|
||||
// ↓
|
||||
// 决定谁排前面
|
||||
println(students.sortWith((a, b) => a._2 > b._2))
|
||||
|
||||
//sortBy → 按什么排序
|
||||
//sortWith → 怎么比较
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package practise9.demo
|
||||
|
||||
/*
|
||||
* groupBy 基础用法*/
|
||||
object Demo7GroupBy {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val nums = List(1, 2, 3, 4, 5, 6)
|
||||
|
||||
val result = nums.groupBy(x => x % 2)
|
||||
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package practise9.demo
|
||||
|
||||
/*
|
||||
* 按学生成绩分组*/
|
||||
object Demo8GroupByStudentScore {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val students = List(
|
||||
("Tom", 85),
|
||||
("Jack", 92),
|
||||
("Alice", 76),
|
||||
("Bob", 88),
|
||||
("Lucy", 95)
|
||||
)
|
||||
val result = students.groupBy(student => {
|
||||
val score = student._2
|
||||
|
||||
if (score >= 90) {
|
||||
"优秀"
|
||||
} else if (score >= 80) {
|
||||
"良好"
|
||||
} else {
|
||||
"及格"
|
||||
}
|
||||
})
|
||||
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package practise9.demo
|
||||
|
||||
/*
|
||||
* filter + map + sortBy 串联*/
|
||||
object Demo9CollectionChain {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val nums = List(1, 2, 3, 4, 5, 6)
|
||||
|
||||
val result = nums
|
||||
.filter(_ % 2 == 0)
|
||||
.map(_ * 10)
|
||||
.sortBy(+_)
|
||||
// .sortBy(x => x)
|
||||
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package practise9.exercises
|
||||
/*
|
||||
* 练习 1:升序
|
||||
|
||||
给:
|
||||
val nums = List(5, 2, 8, 1, 3)
|
||||
|
||||
使用 sortBy,得到:
|
||||
List(1, 2, 3, 5, 8)*/
|
||||
object Exercises1 {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val nums = List(5, 2, 8, 1, 3)
|
||||
val result = nums.sortBy(+_)
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package practise9.exercises
|
||||
/*
|
||||
* 练习 2:降序
|
||||
|
||||
还是:
|
||||
|
||||
val nums = List(5, 2, 8, 1, 3)
|
||||
|
||||
使用 sortBy,得到:
|
||||
|
||||
List(8, 5, 3, 2, 1)*/
|
||||
object Exercises2 {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val nums = List(5, 2, 8, 1, 3)
|
||||
val result = nums.sortBy(-_)
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package practise9.exercises
|
||||
/*
|
||||
* 练习 3:学生成绩排序
|
||||
|
||||
给:
|
||||
val students = List(
|
||||
("Tom", 80),
|
||||
("Jack", 95),
|
||||
("Alice", 70),
|
||||
("Bob", 85)
|
||||
)
|
||||
|
||||
使用 sortBy 按成绩从低到高排序:
|
||||
(Alice,70)
|
||||
(Tom,80)
|
||||
(Bob,85)
|
||||
(Jack,95)
|
||||
|
||||
提示:
|
||||
_._2*/
|
||||
object Exercises3 {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val students = List(
|
||||
("Tom", 80),
|
||||
("Jack", 95),
|
||||
("Alice", 70),
|
||||
("Bob", 85)
|
||||
)
|
||||
val result = students.sortBy(_._2)
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package practise9.exercises
|
||||
/*
|
||||
* 练习 4:sortWith
|
||||
还是上面的学生。
|
||||
|
||||
使用 sortWith:
|
||||
按照成绩从高到低
|
||||
|
||||
结果:
|
||||
List(
|
||||
(Jack,95),
|
||||
(Bob,85),
|
||||
(Tom,80),
|
||||
(Alice,70)
|
||||
)*/
|
||||
object Exercises4 {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val students = List(
|
||||
("Tom", 80),
|
||||
("Jack", 95),
|
||||
("Alice", 70),
|
||||
("Bob", 85)
|
||||
)
|
||||
val result = students.sortWith((a, b) => a._2 > b._2)
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package practise9.exercises
|
||||
/*
|
||||
* 练习 5:groupBy
|
||||
|
||||
给:
|
||||
val nums = List(1, 2, 3, 4, 5, 6, 7, 8)
|
||||
|
||||
按照奇偶分组:
|
||||
偶数 → List(2,4,6,8)
|
||||
奇数 → List(1,3,5,7)
|
||||
|
||||
提示:
|
||||
groupBy(_ % 2)
|
||||
|
||||
得到的 Map 的 Key 会是:
|
||||
0 → 偶数
|
||||
1 → 奇数*/
|
||||
object Exercises5 {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val nums = List(1, 2, 3, 4, 5, 6, 7, 8)
|
||||
val result = nums.groupBy(_ % 2)
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package practise9.exercises
|
||||
/*
|
||||
* 练习 6 ⭐:成绩分组
|
||||
|
||||
给:
|
||||
val students = List(
|
||||
("Tom", 85),
|
||||
("Jack", 92),
|
||||
("Alice", 76),
|
||||
("Bob", 88),
|
||||
("Lucy", 95),
|
||||
("Mike", 60)
|
||||
)
|
||||
|
||||
按照成绩分成:
|
||||
优秀:>= 90
|
||||
良好:>= 80
|
||||
及格:>= 60
|
||||
|
||||
最终类似:
|
||||
优秀 → Jack, Lucy
|
||||
良好 → Tom, Bob
|
||||
及格 → Alice, Mike
|
||||
|
||||
要求使用:
|
||||
groupBy*/
|
||||
object Exercises6 {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val students = List(
|
||||
("Tom", 85),
|
||||
("Jack", 92),
|
||||
("Alice", 76),
|
||||
("Bob", 88),
|
||||
("Lucy", 95),
|
||||
("Mike", 60)
|
||||
)
|
||||
val result = students.groupBy(student => {
|
||||
if (student._2 >= 90) {
|
||||
"优秀"
|
||||
}else if (student._2 >=80){
|
||||
"良好"
|
||||
}else if (student._2 >=60){
|
||||
"及格"
|
||||
}else "不及格"
|
||||
})
|
||||
println(result)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package practise9.exercises
|
||||
/*
|
||||
* 练习 7 ⭐⭐ 综合题
|
||||
|
||||
给:
|
||||
val students = List(
|
||||
("Tom", 85),
|
||||
("Jack", 92),
|
||||
("Alice", 76),
|
||||
("Bob", 88),
|
||||
("Lucy", 95),
|
||||
("Mike", 60)
|
||||
)
|
||||
|
||||
完成:
|
||||
1. filter:去掉不及格成绩(< 60)
|
||||
2. sortBy:按照成绩从高到低
|
||||
3. map:只保留学生姓名
|
||||
|
||||
最终:
|
||||
List(Lucy, Jack, Bob, Tom, Alice, Mike)*/
|
||||
object Exercises7 {
|
||||
def main(args: Array[String]): Unit = {
|
||||
val students = List(
|
||||
("Tom", 85),
|
||||
("Jack", 92),
|
||||
("Alice", 76),
|
||||
("Bob", 88),
|
||||
("Lucy", 95),
|
||||
("Mike", 60)
|
||||
)
|
||||
val result = students
|
||||
.filter(_._2 >= 60)
|
||||
.sortBy(-_._2)
|
||||
.map(_._1)
|
||||
|
||||
println(result)
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user