Scala 知识汇总(knowledge Pooling)

本文介绍了Scala编程语言中的多种实用技巧,包括集合操作如连接、交集、并集和差集的计算,模式匹配的使用,以及如何利用Java工具类进行数组和集合的操作。通过这些示例,读者可以了解到Scala在处理数据方面的强大能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、++ 该方法用于连接两个集合

var mapList = Map.empty[String, Long]
    mapList += "zho1" -> 1L
    mapList += "zho2" -> 2L
    mapList += "zho3" -> 3L
return => Map(zho1 -> 1, zho2 -> 2, zho3 -> 3)

val ee1 = l.map(line => {
      mapList
    }).toList
    println(ee1)
return => List(Map(zho1 -> 1, zho2 -> 2, zho3 -> 3), Map(zho1 -> 1, zho2 -> 2, zho3 -> 3))
val l = Array[String]("1", "2")
    val ee: Map[String, Long] = l.map(line => {
      mapList += line -> 5L
      mapList
    }).reduce((A, B) => A ++ B)
    println(ee)
return => Map(zho1 -> 1, zho2 -> 2, zho3 -> 3)

2、JSON 数据异常捕获

对象                                                                                                                                                        
if (StringUtils.isNotBlank(line) && line.trim.startsWith("{") && line.trim.endsWith("}"))                                                                   
集合                                                                                                                                                        
if(jsonObject.get("pois")!=null && jsonObject.get("pois").toString().startsWith("[") && !"null".equals(fromObject.get("records").toString()));              

3、Scala数组元素的增加(:+)方法

// 1. 定义且同时初始化数组(Array.apply("France") 等价于 Array("France"))
val numNames2 = Array.apply("France","US","china")
// numNames2.update(2,"china") 等价于 numNames2(2) = "china"
numNames2.update(2,"china")
// 2. .:+() 在数组最后添加元素;.+:()在数组首位添加元素
numNames2=numNames2.:+("US")

4、Scala中求List集合的交集,并集,差集

 def main(args: Array[String]): Unit = {
    val a1=List(5,6,4,7)
    val a2=List(1,2,3,5)

    // 交集
    val c1 = a1.intersect(a2)
    println(c1)

    // 并集     distinct去重
    val c2 = (a1:::a2).distinct
    println(c2)

    // 差集
    val c3 = a1.diff(a2)
    val c4 = a2.diff(a1)
    println(c3)
    println(c4)
  }
  // 对应结果数据
  return List(5)
  return List(5,6,4,7,1,2,3)
  return List(6,4,7)
  return List(1,2,3)

5、模式守卫(Pattern gaurds)

val listArray=Array[String]("xiaoming","lisi","wangwu")
listArray.foreach(line=>{
	case line if(line.startsWith("xiao")) => println("xiaoming")
	case line if(line.equals("lisi")) => println("lisi")
	case _ => println("others")
})

6、 使用java.util.Collections工具类

import java.util
import java.util.Collections
object ListElemCompare {
  def main(args: Array[String]): Unit = {
    val integerList: util.ArrayList[Integer] = new util.ArrayList()
    integerList.add(11)
    integerList.add(44)
    integerList.add(22)
    integerList.add(33)
    // 最小值
    System.out.println("min:" + Collections.min(integerList))
    // 最大值
    System.out.println("max:" + Collections.max(integerList))
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Splicing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值