百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

scala基础学习(二)

wptr33 2025-02-08 13:05 25 浏览

非常感谢大家的收藏和订阅,欢迎大家就文章的内容和形式多提出意见和建议,希望大家多多讨论一起进步。继续上次学习内容,这次主要学习collection库:

5、数组

数组的声明:val 数组名 = new Array[数据类型] (长度) 。例如:val myarray = new Array[String](3).

注意到这里是val而不是var,函数式语言鼓励使用不可变数据结构,这里myarray是不能被重新赋值的,但变量指向的对象内部是可以改变的。数组的可变性也体现在这里。数组的访问是通过小括号和下标来实现的。如果使用初始值来创建数组时不能使用new来创建,原因在类和对象中来讲。 数组的遍历:数组遍历可以使用上面的foreach函数也可以使用,for循环来遍历,和java一样可以通过下标和元素两种遍历方式。

变长数组:scala中通过ArrayBuffer来实现和java中的ArrayList相仿,但更强大。同Array如果使用初始值来创建数组时不能使用new。

ArrayBuffer的一些操作:

6、列表

scala有别于Java的列表List,在这里列表是不可变的对象序列,含义是列表的内容一旦被创建了就不可被改变,即使对列表调用了某个方法看起来改变了列表的值,而实际上只是新创建了另一个列表。这里和java中的String对象有点相似。List的初始化、访问和遍历等方法都和Array是一致的

列表中定义":::"方法来实现两个列表的连接,显然的":::"返回的是一个新的列表。列表另一个常用的方法是"::",方法是把一个新元素组合到列表的最前端。并且"::"是右操作数,比如"1::list1"可以更明确的写为"list1.::(1)"

列表List是没有提供append()函数,这和常规的语言有区别。原因是随着列表的长度增加,耗时将成线性增长,而::是固定耗时,那么怎么通过::来实现在List末尾增加元素呢?

同样List也有ListBuffer兄弟类,ListBuffer包含append函数,可以实现上面功能。

9、元组

元组(Tuple)和列表一样是不可变的,不同的是列表中只能存放一种数据结构,而元组可以存放多种数据类型的元素。另外元组的访问也有所区别,是通过下划线+下标的方式来访问,并且下标是从1开始而不是0开始。

10、集合和映射

集合Set,在scala中两个实现类,一个是不可变的来自与
scala.collection.immutable,另一个当然是可变的,来自与sctala.collection.mutable,默认是使用不可变的Set,如果使用可变Set需import可变Set。

映射Map也同样如此,同时对于Set和Map,它们都有各自的HashSet和HashMap,它们又各自都扩展了可变的和不可变的特性(trait),特性类似与java中的接口。

Set可以存放不同数据类型的数据,具有交集、并集、差集等操作,head返回第一个元素,tail返回除第一个元素以外的集合。

不可变的Map类需要在创建时进行初始化,而可变的Map是可以通过 +=来增加键值对的。

今天陪老婆过节,更新比较晚了,也祝读者或者读者的女性的家属们节日快乐!

相关推荐

1.大白话 Spring_大白话对应的是什么话

此文是学习spring源码一些体会,记录下来,哪里有不对的地方,希望批评指正!1.Spring是什么Spring是一款开源的轻量级Java开发框架,旨在提高开发人员的开发效率以及系统的可维护性。...

MyBatis3.5.11-从入门到高阶_mybatis快速入门

一.课程介绍MyBatis概述...

Spring_spring festival

Spring初始化流程,容器初始化,主要流程在AbstractApplicationContext.refresh()1.容器预先准备-...

关于Spring的69个面试问答--终极列表

这篇文章总结了一些关于Spring框架的重要问题,这些问题都是你在面试或笔试过程中可能会被问到的。下次你再也不用担心你的面试了,JavaCodeGeeks这就帮你解答。大多数你可能被问到的问题都列...

49个Spring经典面试题总结(附带答案)

点关注,不迷路!课程资料,关注私信【555】获取,还可领取更多Java面试题资料一、一般问题1.不同版本的SpringFramework有哪些主要功能?2.什么是SpringFram...

MySQL 开发规范_mysql使用规范

一、数据库命名规范所有数据对象名称必须小写:db_user禁止使用MySQL保留关键字,若是则引用``...

Spring框架入门_spring框架入门案例

一.spring是什么?Spring是分层...

JDBC hibernate 和 ibatis 的区别

JDBC、Hibernate和MyBatis(前身是iBatis)都是Java中常见的数据库访问技术,它们各有优缺点,适用于不同的场景。下面是它们的一些区别:JDBC是Java连接...

万变不离其宗,spring常考知识点总结

万变不离其宗,只要理解透了spring常考知识点,那么面试时的问题就好回答了。1.什么是Spring?...

大促数据库压力激增,如何一眼定位 SQL 执行来源?

作者:京东科技王奕龙你是否曾经遇到过这样的情况:在大促活动期间,用户访问量骤增,数据库的压力陡然加大,导致响应变慢甚至服务中断?更让人头疼的是,当你试图快速定位问题所在时,却发现难以确定究竟是哪个业...

SSM三大框架整合详细教程_简单介绍一下ssm框架

SSM三大框架整合详细教程(SPRING+SPRINGMVC+MYBATIS)使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难...

MyBatis有哪些核心对象?_mybatis核心接口包括

Mybatis基本要素MyBatis有三个基本要素:...

ibatis 核心原理解析_ibs架构

最近查找一个生产问题的原因,需要深入研究ibatis框架的源码。虽然最后证明问题的原因与ibatis无关,但是这个过程加深了对ibatis框架原理的理解。这篇文章主要就来讲讲ibatis...

python常用得内置函数解析——list()函数

ython中最常用的内置函数之一list()。1.函数定义list()函数用于创建一个新的列表对象。...

面试干货——某度Python面试题,转发收藏

目录1、Python是如何进行内存管理的?2、什么是lambda函数?它有什么好处?...