(一)List的定义和介绍List 是一种有序的数据结构,它是一种链表结构。
List 创建格式
不可变List:
val 列表名称 = List(element1, element2,...)
可变 List : ListBuffer
import scala.collection.mutable.ListBuffer
val 列表名称 = ListBuffer[元素类型](element1, element2,...)
注意:不可变 List 创建后元素不能修改,而可变 List 可以修改。
package list
/*
* list: 有序, 链表
* 可变与不可变
*/
object List01 {
def main(args: Array[String]): Unit = {
// 可变的
val list1 = scala.collection.mutable.ListBuffer(1,2,3)
list1 += 4
println(list1)
// 不可变 不能直接修改原来的数据
val list2 = scala.collection.immutable.List(1,2,3)
// list2 += 4 += 会报错
}
}
(二)可变List的常用方法
1. 添加元素
对于可变 List,我们可以使用+=操作符或者append方法来添加元素。
添加元素到可变 List 的格式 (+= 操作符):
listBuffer += element
添加元素到可变 List 的格式 (append 方法):
listBuffer.append(element
2. 删除元素*
删除的方法有两种:删除元素,删除某个位置上的元素
3. 元素是否存在
我们可以使用contains方法来查询 List 中是否包含某个元素。
查询 List 元素的格式(contains 方法):
val isContained: Boolean = listName.contains(element)
4. 合并列表
我们可以使用 ++ 方法来合并。
5. List的遍历
我们可以使用for循环或者foreach方法来遍历 List。
使用 for 循环遍历 List 的格式:
for (element <- listName) {
// 操作,如打印 element
}
使用 foreach 方法遍历 List 的格式:
listName.foreach { element =>
// 操作,如打印 element
}
package list
/*
* list: 有序, 链表
* 可变与不可变
* 常用方法
* 1. 添加
* 1.1 在尾部添加 +=
* 1.2 在头部添加 prepend
* 1.3 在指定位置添加 insert
*/
object list02 {
def main(args: Array[String]): Unit = {
// 初始化可变ListBuffer
val list1 = scala.collection.mutable.ListBuffer(1,1,2,3)
// 1.1 在尾部添加元素
list1 += 4
// 1.2 在头部添加元素
list1.prepend(-1)
//list1.insert(-1, 1, 2, 5, 3, 4)
list1.insert(3, 5)
//3:下标,从0开始
//5:就是要插入的元素
// 2.1 删除指定值的元素(删除第一个遇到的1)
list1 -= 1
// 2.2 删除指定下标的元素(删除下标0的元素)
list1.remove(0)
println(list1)
// 3. 检查元素是否存在
val ele = 50
if(list1.contains(ele)){
println(s"${ele} 存在")
} else {
println(s"${ele} 不存在")
}
// 4. 合并 ++
val list2 = scala.collection.mutable.ListBuffer("潜江", "仙桃")
val list3 = scala.collection.mutable.ListBuffer("天门")
val list4 = list2 ++ list3
println(list4)
// 5. 遍历
for(ele <- list4){
println(s"${ele}")
}
list4.foreach(ele => {
println(s"${ele}")
})
}
}
(三)不可变List的常用方法
1. 添加元素
对于不可变 List,使用appended,或者prepended方法来添加元素。
注意:需要使用新的List来保存结果。
val l2 = l1.appended(4) // 在尾部添加
val l2 = l1.prepended(-1) // 在头部添加
2. 合并列表
使用:::方法 或者是 ++ 来合并。