Scala求航班机票价格平均值和极值

题目

通过网络获取济南到北京、上海、广州、深圳、重庆、西安的近30天的航班票价,统计出平均值、最大值、最小值,按如下格式输出
济南–北京 平均值 最大值/时间 最小值/时间
济南–上海 平均值 最大值/时间 最小值/时间
济南–广州 平均值 最大值/时间 最小值/时间
济南–深圳 平均值 最大值/时间 最小值/时间
济南–重庆 平均值 最大值/时间 最小值/时间
济南–西安 平均值 最大值/时间 最小值/时间

代码

import java.io.File
import scala.io.Source

object FeijiHangban {
  def getFile(file: String): Array[File] = {
    val dirFile = new File(file)
    //    获取目录文件
    val files = dirFile.listFiles()
    files
  }

  def main(args: Array[String]): Unit = {
    val rethrnSource = getFile("src/plan").flatMap(x => {
      val data = Source.fromFile(x)
      val value = data.getLines()
      value
    })
      .groupBy(x => x.split(":")(0))
      .map(x => {
        val tuples = x._2.map(i => {
          val strings = i.split(":")
          (strings(0), strings(1), strings(2))
        })
        val avg = tuples.map(a => a._3.toDouble).sum / tuples.length
        val max = tuples.maxBy(a => a._3.toDouble)
        val min = tuples.minBy(a => a._3.toDouble)
        x._1 + "\t" + avg + "\t" + max._3 + "/" + max._2 + "\t" + min._3 + "/" + min._2
      })
      .foreach(i => println(i))
  }
}

运行结果

济南–上海 375.8 690/2021-04-30 300/2021-04-04
济南–广州 553.6 880/2021-04-30 470/2021-04-04
济南–深圳 560.3 1025/2021-04-30 380/2021-04-03
济南–北京 456.1333333333333 800/2021-04-05 390/2021-04-17
济南–重庆 434.8333333333333 970/2021-04-30 300/2021-04-04
济南–西安 297.1666666666667 520/2021-04-30 220/2021-04-04

数据集格式

多个文档存入不同行程的机票价格,格式如下

济南–上海:2021-04-01:410
济南–上海:2021-04-02:430
济南–上海:2021-04-03:400
济南–上海:2021-04-04:300
济南–上海:2021-04-05:470
济南–上海:2021-04-06:400
济南–上海:2021-04-07:320
济南–上海:2021-04-08:330
济南–上海:2021-04-09:380

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值