1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | | package com.lyzx.day02
class T4 {
//从整型数组中查找target对应的索引 def findFisrtInt(arr:Array[Int],target:Int): Int ={ def loop(index:Int): Int ={ if(index >= arr.length){ -1; }else if(arr(index).equals(target)){ index }else{ loop(index+1) } } loop(0) }
//从字符串数组中查找target对应的索引 def findFirstString(arr :Array[String],key:String):Int ={ def loop(index:Int):Int ={ if(index >= arr.length) -1 else if(arr(index).equals(key)) index else loop(index+1) } loop(0) }
//可以从T类型的数组中查找key对应的索引 这就是scala中的多态函数即java里面的泛型函数, def findFirst[T](arr:Array[T],key :T): Int ={ def loop(index:Int):Int ={ if(index >= arr.length) -1 else if(arr(index).equals(key)) index else loop(index+1) } loop(0) } }
object T4{ def main(args: Array[String]) { val arr = Array(1,2,3,4) val t4 = new T4 var index = t4.findFisrtInt(arr,3) println("int:"+index)
val strArr = Array("A","B","C","D","E");
index = t4.findFirstString(strArr,"D") println("String:"+index)
index = t4.findFirst(arr,0) println("T:"+index) } } |