<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          scala語言學(xué)習(xí)筆記3之容器操作

          共 1702字,需瀏覽 4分鐘

           ·

          2022-03-14 13:33

          數(shù)組

          和Java一樣,常量引用指向是一個(gè)地址,數(shù)組引用被標(biāo)記為常量,只是數(shù)組引用的地址不能被更改,數(shù)組中的值是可以被更改的。

          object TestScala4 {

          def main(args: Array[String]): Unit = {
          val arr = Array[Int] (1,2,3,4)
          println(arr(0))
          arr(0)=10;
          println(arr(0))
          arr.foreach(println)
          }
          }
          538e8ecd7354befe34243f3369c300b6.webp

          可變與不可變

          scala中集合分為兩個(gè)包,一個(gè)是immutable不可變的,一個(gè)是mutable可變的

          34bd54a4905ed2031f9b0d7ac3fbd872.webp

          鏈表

          根據(jù)可變不可變,鏈表也就有可變鏈表與不可變鏈表。添加方式也換了種寫法。

          object TestScala5 {

          def main(args: Array[String]): Unit = {
          val list1 = List(1,2,3,4,5,6,7,8)
          list1.foreach(println)

          val list2 = new ListBuffer[Int]()
          list2.+=(33)
          list2.+=(34)
          list2.+=(35)

          list2.foreach(println)
          }
          }

          Set

          可以在方法內(nèi)部導(dǎo)入包,下一行代碼將選擇就近的包來使用。

          1ad8d8976b97fe24d6e6a4b92ee5d706.webp

          Tuple

          這個(gè)寫著確實(shí)很爽啊,哈哈,里面啥都能裝,裝個(gè)函數(shù),再傳參到一個(gè)能傳入函數(shù)參數(shù)函數(shù)中。還有Tuple20,果斷還是放棄寫那么多。

          e2458d65d414a46ad132d4874aed03e0.webp

          迭代器

          object TestScala7 {

          def main(args: Array[String]): Unit = {
          val t2 = Tuple2(1,"dsfs")
          val t3 = Tuple3(1,"sdfs",2)
          val t6 = Tuple6(
          1,
          Array[Int](1,2,3),
          List(22,33),
          Set("sss","aaa"),
          "sdfsd",
          (x:Int,y:Int)=>{x+y}
          )
          def compute(x:Int,y:Int,f:(Int,Int)=>Int): Int ={
          return f(x,y)
          }
          var result = compute(t6._3(0),t6._2(2),t6._6)
          println(result)

          val iterator = t6.productIterator
          while(iterator.hasNext){
          println(iterator.next())
          }
          }
          }
          df0d82defc0ce4f9bd8875620bfdf1cc.webp

          Map

          學(xué)習(xí)新語言,肯定不能少了我們的鍵值對集合。

          988ea4c865181ca65cd3d9f806df2e40.webp

          可變的Map

          object TestScala8 {

          def main(args: Array[String]): Unit = {
          val map01:Map[String,Int] = Map(("a",11),"b"->22,("a",111))
          val keys:Iterable[String] = map01.keys
          println(map01.get("a"))
          println(map01.get("a").get)
          println(map01.get("b"))
          println(map01.get("b").get)
          println(map01.get("c").getOrElse("hello"))

          for (elem <- keys) {
          println(s"key:$elem value:${map01.get(elem).get}")
          }

          val map02 = scala.collection.mutable.Map(("a",11),("b",22))
          map02.put("hello",33);
          println(map02.get("hello").get)
          }

          }
          48a2a27ec1ef7e36b85d9e1bea9131ba.webp

          類MapReduce操作

          我們可以使用scala語言對集合進(jìn)行一次類MapReduce的操作,單詞計(jì)算需求。全程使用迭代器模式。

          23fbd39b976ca78aab8b82d111a377dc.webp
          object TestScala9 {

          def main(args: Array[String]): Unit = {
          //將一個(gè)文件導(dǎo)入內(nèi)存
          val lines = List("hello word","hello scala","hello python","life short","I use python")
          // Map 過程 采用迭代器模式
          val iteratorLines:Iterator[String] = lines.iterator
          val words = iteratorLines.flatMap((element:String)=>element.split(" "))
          val mapList = words.map((_,1))
          // Reduce 采用迭代器模式
          val reduceMap = scala.collection.mutable.Map[String,Int]()
          mapList.foreach(
          element=>{
          if(reduceMap.contains(element._1)){
          reduceMap.put(element._1,reduceMap.get(element._1).get+1)
          }else{
          reduceMap.put(element._1,1)
          }
          }
          )
          reduceMap.foreach(println)
          }
          }


          瀏覽 38
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品人视频 | 日木三级区二区 | 五月色婷婷综合 | 澳门精品久久 | 围内精品久久久久久久久久98 |