• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            The Fourth Dimension Space

            枯葉北風(fēng)寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢(mèng)令

            Scala數(shù)組操作

            scala中的數(shù)組比java的數(shù)組強(qiáng)大很多   
                1、定長數(shù)組:長度不變的數(shù)組Array,如:聲明一個(gè)長度為10的整形數(shù)組,val arr = Array[Int](10);聲明并初始化一個(gè)字符串?dāng)?shù)組: val arrStr = Array(“wo”,”cha”,”yo”)。訪問數(shù)組方式:訪問arrStr第一個(gè)元素,arrStr(1)即可
                2、變長數(shù)組(即數(shù)組緩沖):java中有ArrayList和scala中的ArrayBuffer等效;但是ArrayBuffer更加強(qiáng)大,通過下面的事列來熟悉ArrayBuffer:
            import collection.mutable.ArrayBuffer
                val arrbuff1 = ArrayBuffer[Int]()
                val arrBuff2 = ArrayBuffer(1,3,4,-1,-4)
                arrbuff1 += 23    //用+=在尾端添加元素
                arrbuff1 += (2,3,4,32) //同時(shí)在尾端添加多個(gè)元素
                arrbuff1 ++= arrBuff2 //可以用 ++=操作符追加任何集合
                arrbuff1 ++= Array(2,43,88,66)
                arrbuff1.trimEnd(2) //移除最后的2個(gè)元素
                arrbuff1.remove(2)  //移除arr(2+1)個(gè)元素
                arrbuff1.remove(2,4) //從第三個(gè)元素開始移除4個(gè)元素
                val arr = arrbuff1.toArray //將數(shù)組緩沖轉(zhuǎn)換為Array
                val arrbuff2 = arr.toBuffer //將Array轉(zhuǎn)換為數(shù)組緩沖
                3、遍歷數(shù)組和數(shù)組緩沖:在java中數(shù)組和數(shù)組列表/向量上語法有些不同。scala則更加統(tǒng)一,通常情況,我們可以用相同的代碼處理這兩種數(shù)據(jù)結(jié)構(gòu),for(…) yield 循環(huán)創(chuàng)建一個(gè)類型和原集合類型相同的新集合。for循環(huán)中還可以帶守衛(wèi):在for中用if來實(shí)現(xiàn)。
                for(i <- 0 until arrbuff1.length) yield arrbuff1(i) * 2 //將得到ArrayBuffer(2,6,4,-2,-4)
                for(i <- 0 until (arrbuff1.length,2)) yield arrbuff1(i) * 2 //將得到ArrayBuffer(12,-4)
                for(elem <-0 arrbuff1) print(elem) //如果不需要使用下標(biāo),用這種方式最簡單了
                for(i <- arrbuff1 if arrbuff1 > 0) print i //打印出arrbuff1中為整數(shù)的值
                arrbuff1.filter( _ > 0).map{ 2 * _} //生成arrbuff1中的正數(shù)的兩倍的新集合
                arrbuff1.filter {_ > 0} map {2 * _} //另一種寫法
                4、常用算法:scala有很多便捷內(nèi)建函數(shù),如
                arrbuff1.sum //對(duì)arrbuff1元素求和
                Array("asd","sdf","ss").max //求最大元素
                arrbuff1.sorted(_ < _)  //將arrbuff1元素從小到大排序
                arrbuff1.sorted(_ > _)  //從大到小排序
                util.Sorting.quickSort(Array) //針對(duì)數(shù)組排序,單不能對(duì)數(shù)組緩沖排序
                val arr = Array(1,23,4,2,45)
                arr.mkString(",") //指定分割符
                arr.mkString("(",",",")") //指定前綴、分隔符、后綴
            更多函數(shù)參見Scaladoc
                5、多維數(shù)組:
            val matrix = Array.ofDim[Int](5,4) //三行四列的二維數(shù)組
            matrix(2)(3) //訪問第二行、第三個(gè)元素
                6、scala數(shù)組和java互操作:由于scala數(shù)組是用java數(shù)組實(shí)現(xiàn)的,所以可以在java和scala之間來回傳遞,引入scala.collectin.JavaConversion ,可以在代碼中使用scala緩沖,在調(diào)用java方法時(shí),這些對(duì)象會(huì)被自動(dòng)包裝成java列表。反過來講,引入scala.collection.asScalaBuffer時(shí),當(dāng)java方法返回java.util.List時(shí),我們可以讓它轉(zhuǎn)換成一個(gè)Buffer

            轉(zhuǎn)自:http://www.kankanews.com/ICkengine/archives/128572.shtml

            posted on 2014-10-04 11:52 abilitytao 閱讀(32069) 評(píng)論(3)  編輯 收藏 引用

            評(píng)論

            # re: Scala數(shù)組操作 2015-05-06 09:05 hpf

            val b = ArrayBuffer(1,7,2,9)
            val bSorted = b.sorted(_ > _)
            我這樣寫怎么報(bào)錯(cuò)  回復(fù)  更多評(píng)論   

            # re: Scala數(shù)組操作 2015-07-17 14:26 niuzi

            @hpf
            sorted 沒有參數(shù),默認(rèn)按照>進(jìn)行排序,這是快學(xué)scala里面的一處錯(cuò)誤,應(yīng)該用sortedWith(_ > _)  回復(fù)  更多評(píng)論   

            # re: Scala數(shù)組操作 2015-07-28 16:50 wyz

            sortWith( _ > _ )  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            国产亚洲色婷婷久久99精品91| 久久精品国产一区| 久久精品国产精品亜洲毛片| 久久天天躁狠狠躁夜夜2020一| 国产精品久久一区二区三区| 久久亚洲精品国产精品婷婷| 77777亚洲午夜久久多喷| 国产一区二区精品久久岳| 久久亚洲精品国产精品婷婷| a高清免费毛片久久| 无码八A片人妻少妇久久| 久久www免费人成看国产片| 久久99久国产麻精品66| 狠狠色丁香久久综合五月| 日批日出水久久亚洲精品tv| 久久成人国产精品一区二区| 亚洲伊人久久综合影院| 久久久精品久久久久影院| 91久久精品91久久性色| 国产精品中文久久久久久久| 99久久精品免费看国产一区二区三区| 国产美女久久精品香蕉69| 2021久久精品国产99国产精品| 天天综合久久一二三区| 国产精品久久久久一区二区三区 | 日日狠狠久久偷偷色综合0| 国产亚洲精品美女久久久| 亚洲精品高清国产一线久久| 人妻无码久久一区二区三区免费| 久久久噜噜噜久久中文字幕色伊伊| 久久青青草原综合伊人| 久久夜色撩人精品国产| 2021国产精品午夜久久| 香港aa三级久久三级老师2021国产三级精品三级在| 久久天天躁狠狠躁夜夜96流白浆 | 久久久久亚洲av成人网人人软件| 狠狠久久综合| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 精品久久久久久亚洲| 99久久婷婷免费国产综合精品| 精品久久久久久亚洲精品|