scala 使用

本文深入探讨Scala的使用,重点讲解了不可变性在函数式编程中的重要性,特别是在List和Array的使用中。介绍了ListBuffer作为可变替代方案,以及Array与List的操作,包括排序和特定容器类的使用。此外,还涵盖了Map、flatMap的区别,异常处理,对象比较以及Scala与Java集合之间的转换等关键概念。

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

一、时间戳

val now = new Date()  
  def getCurrent_time():Long = {  
        val a = now.getTime  
        var str = a+""  

        str.toLong  
  } 

二、scala中的list
List不能添加元素是为了保持immutable,函数式编程语言中的List基本都是这么设计的。
如果需要能添加元素的list,可以用ListBuffer

一方面函数式编程的风格就是不可变性:如果你用过Haskell就知道,里面的一切都是不可变的。

另一方面为了并行、多线程,一个集合是不可变的就保证了它可以安全的被多个线程共享。一个mutable的集合如何在多个线程之间安全操作是一个非常烦人的事情。immutable就没这个问题了。

三、array和list的使用
1、使用
http://blog.youkuaiyun.com/lovehuangjiaju/article/details/46963721
https://wizardforcel.gitbooks.io/w3school-scala/content/15.html

2、list的排序

sortBy(f⇒(f._3))(Ordering.Double.reverse)

其中Ordering.Double.reverse用来降序
如何对Scala中集合(Collections)进行排序
https://www.iteblog.com/archives/1171.html

四、具体的可变容器类
Array Buffers、List Buffers、StringBuilders、链表、队列等
https://docs.scala-lang.org/zh-cn/overviews/collections/concrete-mutable-collection-classes.html

五、scala中map和foreach的区别
http://blog.youkuaiyun.com/qq_26398033/article/details/52472476

六、map与flatMap的区别

flatMap会把结果做扁平化

val resultListSort=resultListBuf.toList.flatMap(f⇒f).sortBy(f⇒(f._3))(Ordering.Double.reverse)

toList之后得到 List[Array[(String, String, Double)]]
sortBy的时候就是(String, String, Double)

七、scala异常处理
http://outofmemory.cn/scala/scala-exception-handle-try-catch-finally

八、数组

args(0)

九、classOf[Neo4jConnector]
十、Scala对象比较==、eq、ne与java==、equals()
https://my.oschina.net/hanzhankang/blog/200295
http://www.jianshu.com/p/7b2b19d2fe7d

十一、toIterator和iterator
这俩有时候返回的是一个,有时候不是,
对于list,返回的是IterableLike
对于array,iterator返回的是IndexedSeqLike;toIterator返回的是IterableLike,其中IndexedSeqLike是IterableLike的子类,所以用iterator

十二、map
定义 Map 时,需要为键值对定义类型。如果需要添加 key-value 对,可以使用 + 号,如下所示:

A += ('I' -> 1)
A += ('J' -> 5)
A += ('K' -> 10)
A += ('L' -> 100)

http://www.runoob.com/scala/scala-maps.html

十三、scala.collection.mutable.ArrayBuffer
和java中的ArrayList等价

十四、元组 Tuple

十五、scalal list to java list
import scala.collection.JavaConverters._

list.asJava
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值