Scala_练习

Scala_练习

package com.lius

import java.util

/**
 * Practice
 */
object finalPractice {

  /**
   * 九九乘法表
   */
  class nNMultipartly(){
    def build():String={
      var sbf = new StringBuffer()
      for(a <- 1 to 9){
        for(b <- 1 to a){
          sbf.append(s"$b * $a = ${a*b}\t")
        }
        sbf.append("\r\n")
      }
      return sbf.toString;
    }
  }

  /**
   * 冒泡排序
   * @param param
   */
  class maoPaoSort(param:Array[Int]){
    var arrayParam = param
    private def eacheThan(x:Int,y:Int):Array[Int] = {//比较
      var result:Array[Int] = Array(x,y);
      if(result(0)<result(1)){
        result(0)^=result(1)
        result(1)^=result(0)
        result(0)^=result(1)
      }
      return result
    }
    def sort():maoPaoSort={  //排序
      val sLen = arrayParam.length-1
      for(a <- 0 to sLen){
        for(b <- 0 to sLen-a)
        if(sLen>=b+1){
          val paramResult = eacheThan(arrayParam(b),arrayParam(b+1))
          arrayParam(b) = paramResult(0)
          arrayParam(b+1) = paramResult(1)
        }
        println(s"第${a+1}次排序结果:${util.Arrays.toString(arrayParam)}")
      }
      return this
    }
    def build():Array[Int]={  //返回
      println(s"最终排序结果:${util.Arrays.toString(arrayParam)}")
      return arrayParam
    }
  }


  //模式匹配
  trait moshi{
    def work()
  }
  object JavaPeople extends moshi{
    override def work(): Unit = {
      println("我是一个Java工程师")
    }
  }
  object PhpPeople extends moshi{
    override def work(): Unit = {
      println("我是一个php工程师")
    }
  }
  object SparkPeople extends moshi{
    override def work(): Unit = {
      println("我是一个Spark工程师")
    }
  }



  def matchTest(x:String) = x match {
    case "java" => JavaPeople.work()
    case "php" => PhpPeople.work()
    case "spark" => SparkPeople.work()
    case _ => println("I don't know your job")
  }


  /**
   * 判断集合是否对称
   * @param param
   */
  class ensureLinkSymmetrical(param:List[String]){
    private val inputSource = param
    private var outputSource = true
    def ensure():ensureLinkSymmetrical={
      val sSize = inputSource.size-1
      var isOld = inputSource.size%2==0
      var towSize = inputSource.size/2
      for(a <- 0 to towSize){
        if(a<=sSize-a){
          outputSource&= inputSource(a).equalsIgnoreCase(inputSource(sSize-a))
        }
      }
      return this
    }
    def build():Boolean={
      return outputSource
    }
  }


  /**
   *
   * @param args
   */
  def main(args:Array[String]):Unit={
    //九九乘法表
//    val nine = new nNMultipartly
//    print(nine.build())
    //冒泡排序
//    val score:Array[Int] = Array(67,55,75,87,89,70,99,10)
//    val mapPao = new maoPaoSort(score)
//    mapPao.sort().build
    //模式匹配
//    val work01 = "java"
//    matchTest(work01)
//    val work02 = "php"
//    matchTest(work02)
//    val work03 = "spark"
//    matchTest(work03)
//    val work04 = "hehe"
//    matchTest(work04)
    //判断集合是否对称
    var collectionParam = List("1","2","3","4","4","3","2","1")
    val classIns = new ensureLinkSymmetrical(collectionParam)
    println(classIns.ensure().build())
  }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值