第四章:マッピングとメタグループ
3456 ワード
第四章:マッピングとメタグループ
ラベル(スペース区切り):scalaレッスン後の練習問題
1.必要な装備と価格を含むマッピングを設定します.次に別のマッピングを構築し、同じキーセットを採用しますが、価格は9割引になります.
2.ファイルから単語を読み込むプログラムを作成します.各単語の出現頻度を可変マッピングでクリアします.これらの単語を読み取る操作はjavaを用いることができる.util.Scanner.最後に、すべての単語とその出現回数を印刷します.
3.前の練習を繰り返し、今回は不変のマッピングで
4.チェーンハッシュマッピングを定義し、「Monday」をjavaにマッピングする.util.Calendar.MONDAYは、順番に別の日付に追加します.ディスプレイ要素は、挿入された順序でアクセスされます.
この問題は主にLinkedHashMapを試験することです.
5.関数minmax(values:Array[Int])を作成し、配列内の最小値と最大値の対偶を返します.
6.関数Iteqgt(values:Array[int],v:Int)を作成し、戻り配列の中でvより小さく、vとvより大きい数に等しく、3つの値を一緒に返す必要がある.
7.2つの文字列を一緒にファスナーすると、例えば「Hello」です.zip(「World」)は、どんな結果になりますか?話の通じる用例を思いつく
これは主にStringOpsのzipメソッド定義を見に行きます.
ラベル(スペース区切り):scalaレッスン後の練習問題
1.必要な装備と価格を含むマッピングを設定します.次に別のマッピングを構築し、同じキーセットを採用しますが、価格は9割引になります.
def percentMap(map : Map[String,Float])={
for((name,price) <- map) yield (name,price*0.9)
}
2.ファイルから単語を読み込むプログラムを作成します.各単語の出現頻度を可変マッピングでクリアします.これらの単語を読み取る操作はjavaを用いることができる.util.Scanner.最後に、すべての単語とその出現回数を印刷します.
def wordCount(file:String)={
val words = Source.fromFile(file).mkString
val wordArray = words.split(" ")
val map = new HashMap[String,Int]
for(word <- wordArray){
map(word)=map.getOrElse(word,0)+1
}
}
3.前の練習を繰り返し、今回は不変のマッピングで
def wordCount2(file :String)={
val source = Source.fromFile("myfile.txt").mkString
val tokens = source.split(" ")
var map = Map[String,Int]()
for(key <- tokens){
map += (key -> (map.getOrElse(key,0) + 1))
}
}
4.チェーンハッシュマッピングを定義し、「Monday」をjavaにマッピングする.util.Calendar.MONDAYは、順番に別の日付に追加します.ディスプレイ要素は、挿入された順序でアクセスされます.
この問題は主にLinkedHashMapを試験することです.
val map = new LinkedHashMap[String,Int]
map += ("Monday"->Calendar.MONDAY)
map += ("Tuesday"->Calendar.TUESDAY)
map += ("Wednesday"->Calendar.WEDNESDAY)
map += ("Thursday"->Calendar.THURSDAY)
map += ("Friday"->Calendar.FRIDAY)
map += ("Saturday"->Calendar.SATURDAY)
map += ("Sunday"->Calendar.SUNDAY)
5.関数minmax(values:Array[Int])を作成し、配列内の最小値と最大値の対偶を返します.
def minmax(values:Array[Int])={
(values.max,values.min)
}
6.関数Iteqgt(values:Array[int],v:Int)を作成し、戻り配列の中でvより小さく、vとvより大きい数に等しく、3つの値を一緒に返す必要がある.
def iteqgt(values:Array[Int],v:Int)={
val buf = values.toBuffer
(values.count(_ < v),values.count(_ == v),values.count(_ > v))
}
7.2つの文字列を一緒にファスナーすると、例えば「Hello」です.zip(「World」)は、どんな結果になりますか?話の通じる用例を思いつく
scala> "Hello".zip("World")
res0: scala.collection.immutable.IndexedSeq[(Char, Char)] = Vector((H,W), (e,o), (l,r), (l,l), (o,d))
これは主にStringOpsのzipメソッド定義を見に行きます.