Java 的 List 转 scala的Buffer | 学习笔记

简介: 快速学习 Java 的 List 转 scala 的 Buffer

开发者学堂课程【Scala 核心编程 - 进阶Java 的 List 转 scala 的 Buffer学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9029


Java 的 List 转 scala 的 Buffer


Java 的 List 转 Scala 数组(mutable.Buffer)

在项目开发中,有时需要将 Java 的 List 转成 Scala 数组,看下面案例:

假如说这里有一个 List,是 JAVA 的 list,先把它付给了一个 mutable.buffer,mutable.buffer 是 Arraybuffer 的父类,转完之后就可以 append 加上一些东西,里面也用到了一个隐式转换,是 JavaConversions 里面的方法是 asScalaBuffer。

Println(arrList)//输出[1,2,3]

/说明

/1. asscaLaBuffer 是一个式函数/ *

它的样子是:implicit def asscaLaBuffer[A](L : java.utiL.List[A]) : scala.coLLection.mutable .Buf fer[A] = i{/ * compiled code +/ }可以接收一个 List,把它转成 JAVA

collection 里面的 mutable的Buffer,这个 buffer 可以当成 ARRAYbuffer 来使用,这里面就用到了隐式函数的特点,此时它的应用场景跟刚才不一样,刚才是传参数时触发了隐式函数,而这个时候是赋值的时候触发了隐式函数,只要在范围内能找到函数就可以。

*/

现在研究的话题是 Java 的 list 转成 scala的Arraybuffer.

import scala.collection.JavaConversions.asScalaBuffer

import scala.collection.mutable(引入一下)

//java.util.List ==>Buffer(变成了buffer类型的输出,append是支持的)

val scalaArr: mutable.Buffer[String] = arrList arrList赋给 mutable.Buffer mutable.Buffer是ArrayBuffer的父类)

scalaArr.append(""jack")

scalaArr.append("tom")

scalaArr.remove(0)假如以后有 JAVA 的 list 想要使用,想要转换也是可以的。这里remove 后面是0的话,原来的1就没有了。

printLn(scalaArr)/ / 输出为(2,3,jack ,tom)

}

运行结果如下:

D : \program\jdks\binljava[1,2,3]

ArrayBuffer(2, 3, jacik, tom)

Process finished with exit code 0

Scala 麻烦的部分就是它既有 Scala 又有 Java,同时有时候需要在二者之间进行转换,而且将来集合又用的很多。

相关文章
|
4月前
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
68 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
4月前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
88 5
|
4月前
|
Java 程序员 编译器
Java|如何正确地在遍历 List 时删除元素
从源码分析如何正确地在遍历 List 时删除元素。为什么有的写法会导致异常,而另一些不会。
84 3
|
4月前
|
Java 程序员
Java|List.subList 踩坑小记
不应该仅凭印象和猜测,就开始使用一个方法,至少花一分钟认真读完它的官方注释文档。
43 1
|
3月前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
74 0
|
4月前
|
Java
让星星⭐月亮告诉你,Java NIO之Buffer详解 属性capacity/position/limit/mark 方法put(X)/get()/flip()/compact()/clear()
这段代码演示了Java NIO中`ByteBuffer`的基本操作,包括分配、写入、翻转、读取、压缩和清空缓冲区。通过示例展示了`position`、`limit`和`mark`属性的变化过程,帮助理解缓冲区的工作原理。
58 2
|
5月前
|
存储 安全 Java
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
本文是Java基础的进阶篇,对异常、集合、泛型、Java8新特性、I/O流等知识进行深入浅出的介绍,并附有对应的代码示例,重要的地方带有对性能、底层原理、源码的剖析。适合Java初学者。
Java修仙之路,十万字吐血整理全网最完整Java学习笔记(进阶篇)
|
4月前
|
Java 数据安全/隐私保护
java学习笔记(基础习题)
java学习笔记(基础习题)
57 0
|
4月前
|
Java 程序员 开发工具
java学习笔记
java学习笔记
55 0
|
4月前
|
缓存 Java
java文件读取 while ((len = reader.read(buffer)) != -1){}的理解
本文解释了Java中使用`InputStreamReader`和`read(buffer)`方法循环读取文件内容的机制,强调了如何正确理解读取循环和处理读取到的数据,以及如何处理字符编码和换行符。
80 0