Scala学习笔记——List

Scala学习笔记——List


前言

Scala 列表类似于数组,它们所有元素的类型都相同,
但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变

一、创建列表

1、创建空链表

var nil: Nil.type = Nil
var nil2: List[Nothing] = List()

2、创建链表

//创建链表
var list: List[String] = List("d", "b", "c")
var ints: List[Int] = List(1, 2, 3)
//使用 :: 创建链表
var ints1: List[Int] = 1 :: 2 :: 3 :: 4 :: Nil

二、连接两个链表

def main(args: Array[String]): Unit = {
	var list: List[String] = List("d", "b", "c")
	var ints: List[Int] = List(1, 2, 3)
	var ints1: List[Int] = 1 :: 2 :: 3 :: 4 :: Nil
	//1、使用 ::: 运算符
	println(ints ::: ints1)
	
	//2、使用List.concat(list1, list2)连接链表
	println(List.concat(ints, list))
	
	//3、使用List.:::(list2)方法连接链表
	println(ints.:::(ints1)) //注意,这个方法ints1在前面,ints在后面
}

输出:
在这里插入图片描述

三、列表的属性

def main(args: Array[String]): Unit = {
	var list: List[String] = List("d", "b", "c")
	//获取列表长度
	val size: Int = list.size
	//判断列表是否为空
	val empty: Boolean = list.isEmpty
}

四、列表常用方法

1、翻转链表

def main(args: Array[String]): Unit = {
	var list: List[String] = List("d", "b", "c")
	//列表翻转
	println(list.reverse)
}

2、获取list指定位置的值以及给列表添加元素

def main(args: Array[String]): Unit = {
	var list: List[String] = List("d", "b", "c")
	//在list开头插入元素,返回一个新的list,原来list不会变
	println("e" +: list)
    println(list)
    list = "e" +: list
    println(list)
    //在list结尾插入元素
    //注: 冒号那边的始终是列表,加号那边的始终是要加入的元素,加入到开头还是结尾取决于元素在前面还是在后面
    println(list :+ "e")
    //通过列表索引获取元素
    println(list.apply(2))
    //获取开头或结尾元素
    val head: String = list.head
    val last: String = list.last
}

输出:
在这里插入图片描述

3、去除list元素

def main(args: Array[String]): Unit = {
	var list: List[String] = List("d", "b", "c")
	//去掉开头i个元素 :list.drop(i)
    println(list.drop(1))
    //去掉结尾i个元素 :list.dropRight(i)
    println(list.dropRight(1))
}

输出:
在这里插入图片描述

4、列表排序

def main(args: Array[String]): Unit = {
	var list: List[String] = List("d", "b", "c")
	var ints1: List[Int] = 1 :: 2 :: 3 :: 4 :: Nil
	//字符串排序
    println(list.sortWith(_.compareTo(_) < 0))
    //数字或其它排序
    //降序排序
    println(ints1.sortWith((o1, o2) => o1 > o2))
    //升序排序
    println(ints1.sortWith((o1, o2) => o1 < o2))
}

输出:
在这里插入图片描述

五、列表的遍历

def main(args: Array[String]): Unit = {
	var list: List[String] = List("d", "b", "c")
	//for循环
    for (i <- list) {
        print(i + " ")
    }
    println()
    //foreach函数
    list.foreach(print)
    println()
    //迭代器
    val it: Iterator[String] = list.iterator
    while (it.hasNext) {
        print(it.next())
    }
}

输出:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值