日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

scala学习笔记-数组转换(8)

發(fā)布時(shí)間:2024/1/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scala学习笔记-数组转换(8) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用yield和函數(shù)式編程轉(zhuǎn)換數(shù)組

1 // 對(duì)Array進(jìn)行轉(zhuǎn)換,獲取的還是Array2 val a = Array(1, 2, 3, 4, 5)3 val a2 = for (ele <- a) yield ele * ele4 // 對(duì)ArrayBuffer進(jìn)行轉(zhuǎn)換,獲取的還是ArrayBuffer5 val b = ArrayBuffer[Int]()6 b += (1, 2, 3, 4, 5)7 val b2 = for (ele <- b) yield ele * ele8 // 結(jié)合if守衛(wèi),僅轉(zhuǎn)換需要的元素9 val a3 = for (ele <- if ele % 2 == 0) yield ele * ele 10 11 // 使用函數(shù)式編程轉(zhuǎn)換數(shù)組(通常使用第一種方式) 12 a.filter(_ % 2 == 0).map(2 * _) 13 a.filter { _ % 2 == 0 } map { 2 * _ }

算法案例:移除第一個(gè)負(fù)數(shù)之后的所有負(fù)數(shù)

1 // 構(gòu)建數(shù)組2 val a = ArrayBuffer[Int]()3 a += (1, 2, 3, 4, 5, -1, -3, -5, -9)4 5 // 每發(fā)現(xiàn)一個(gè)第一個(gè)負(fù)數(shù)之后的負(fù)數(shù),就進(jìn)行移除,性能較差,多次移動(dòng)數(shù)組6 var foundFirstNegative = false7 var arrayLength = a.length8 var index = 09 while (index < arrayLength) { 10 if (a(index) >= 0) { 11 index += 1 12 } else { 13 if (!foundFirstNegative) { foundFirstNegative = true; index += 1 } 14 else { a.remove(index); arrayLength -= 1 } 15 } 16 }

算法案例:移除第一個(gè)負(fù)數(shù)之后的所有負(fù)數(shù)(改良版)

1 // 重新構(gòu)建數(shù)組2 val a = ArrayBuffer[Int]()3 a += (1, 2, 3, 4, 5, -1, -3, -5, -9)4 5 // 每記錄所有不需要移除的元素的索引,稍后一次性移除所有需要移除的元素6 // 性能較高,數(shù)組內(nèi)的元素遷移只要執(zhí)行一次即可7 var foundFirstNegative = false8 val keepIndexes = for (i <- 0 until a.length if !foundFirstNegative || a(i) >= 0) yield {9 if (a(i) < 0) foundFirstNegative = true 10 i 11 } 12 for (i <- 0 until keepIndexes.length) { a(i) = a(keepIndexes(i)) } 13 a.trimEnd(a.length - keepIndexes.length)

?

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的scala学习笔记-数组转换(8)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。