scala中的List

19 阅读3分钟

(一) List的定义和介绍 List 是一种有序的数据结构,它是一种链表**结构。 [教师画图介绍链表]

[展示]List 创建格式

不可 List:

val 列表名称 = List(element1, element2,...)

可变 List : ListBuffer

import scala.collection.mutable.ListBuffer

val 列表名称 = ListBuffer[元素类型](element1, element2,...)

package list

object list01 {
  def main(args: Array[String]): Unit = {
    //不可变的列表
    val list1=List("湖北","湖南","广东")
    //list1 += "北京"错误,不可变列表,不能直接+=
    println(list1)

    //可变的列表
    val list2=scala.collection.mutable.ListBuffer("湖北","湖南","广东")
    //可变列表,可以 +=
    list2 += "北京"

  }

}

(二)可变List的 常用方法

1. 添加元素

2.  删除元素

package list
/*
 *
 * 可变list的常见操作
 *1.添加(在头部添加,在尾部添加,在指定的位置添加)
 *2.删除(删除元素,删除某个位置上的元素)
 *3.判断元素
 *4.
 * 
 * 
 */
object list02 {
  def main(args: Array[String]): Unit = {

    val list1=scala.collection.mutable.ListBuffer("湖北")

    //1.添加,在尾部添加
    list1 +="浙江"

    println(list1)//ListBuffer(湖北,浙江)

    //2.添加,在头部添加
    list1.prepend("潜江")//潜江,湖北,浙江

    //3.添加,在指定位置插入。
    list1.insert(2,"广东")//潜江,湖北,广东,浙江
    println(list1)

    //4.删除,删除指定的元素,只删除找到的这一个。
    list1-="潜江"

    //5.删除某个下标上的元素
    println(list1)
    list1.remove(0)//删除列表中的第一个元素。下标为0的元素
    println(list1)

    //6.判断是否存在

    if(list1.contains("潜江")){
      println("潜江在列表中")
    }

    //7.合并
    val list2=scala.collection.mutable.ListBuffer(1,2,3)
    val list3=scala.collection.mutable.ListBuffer(4,5,6)
    val list4=list2 ++ list3
    val list5=list2.concat(list3)
    println(list4)
    println(list5)

    //8.遍历 list1 for,foreach方法
    list1.foreach(ele => {
      println(ele)
    })

    for (ele <- list1){
      println(ele)
    }


  }

}

步骤任务:

  1. 创建图书信息类,包含三个属性:书名,作者,价格
  2. 创建 6 本图书对象并添加到可变 List 的尾部
  3. 创建 1 本图书对象并添加到可变 List 的头部
  4. 创建 1 本图书对象并添加到可变 List 的第 3 个位置
  5. 根据图书名称查询是否在列表中(通过遍历列表对比名称)
  6. 从列表中删除第 4 本书
  7. 对于图书按价格从高到低排序。
  8. 遍历图书列表,并打印每本书的详细信息
  9. 展示全部的总的金额
package list

import java.awt.print.Book

/*
*1. 创建图书信息类,包含三个属性:书名,作者,价格
*2. 创建 6 本图书对象并添加到可变 List 的尾部
*3. 创建 1 本图书对象并添加到可变 List 的头部
*4. 创建 1 本图书对象并添加到可变 List 的第 3 个位置
*5. 根据图书名称查询是否在列表中(通过遍历列表对比名称)
*6. 从列表中删除第 4 本书
*7. 对于图书按价格从高到低排序。
*8. 遍历图书列表,并打印每本书的详细信息
*9. 展示全部的总的金额
 */



import scala.collection.mutable.ListBuffer

class Book(var bookName:String,var author:String,val price:Double) {}

object list03 {
  def main(args: Array[String]): Unit = {
    val bookList: ListBuffer[Book] = ListBuffer()

    val book1=new Book("西游记","吴承恩",50.2)
    bookList += book1
    val book2=new Book("三国演义","罗贯中",54.2)
    bookList +=book2

    //3.
    val book3=new Book("凡人修仙传","忘语",30)
    bookList.prepend(book3)
    //4.
    bookList.insert(2,new Book("平凡的世界","路遥",50))
    //7.
    val newBookList=bookList.sortWith((a:Book,b:Book)=>{
      a.price>b.price
    })
    //8.
    bookList.foreach(book =>{
      println(s"书名:${book.bookName},作者:${book.author},价格:${book.price}")
    })

  }
}