ScalaのMapとTuple

2510 ワード

  • デフォルトでは、Mapは可変の集合を構築しており、中の内容は変更できません.変更すると新しいMapになり、元のMapの内容は変更されません.

  • Mapの例は、ファクトリメソッドモードapplyを呼び出してMapインスタンスを構築することであり、主にMapがインタフェースである必要があり、applyでは具体的な実装
  • が使用される.
        //         apply   Map  ,       Map   , apply         
        val bigDatas = Map("Spark" -> 5, "Hadoop" -> 11)
    
  • Mapインスタンスを直接newしたい場合は、HashMapなどの具体的なMapサブクラスを使用する必要があります.

  • クエリー1つのMapの値はgetOrElseの構文を採用しているに違いない.keyが存在しない場合に異常を報告しない一方で、デフォルト値を提供する役割もある.デフォルト値の提供は実際の開発において極めて重要であり、Sparkでは多くのデフォルトの構成がgetOrElse方式で実現されている.

  •     val programingLanguage = scala.collection.mutable.Map("Scala" -> 13, "Java" -> 23)
        programingLanguage("Scala") = 10
        for((name, age) 
  • SortedMapを使用すると、ソートされたMapのセットが得られる.

  •     val persons = scala.collection.mutable.SortedMap(("yaj", 28), ("yrz", 4),("xh", 30))
        for((age, name) 
  • LinkedHashMapはデータを挿入する順序を覚えることができ、これは実際の開発において非常に有用である.

  •     val personsInformation2 = new scala.collection.mutable.LinkedHashMap[String, Int]
        personsInformation2 += ("Scala" -> 13, "Java" -> 23, "Python" -> 10)
        for((name, age)  13, "Java" -> 23)
        personsInformation -= ("Scala")
        for((name, age) 
  • Tupleにはいろいろなタイプのデータがあります.例えば(「yaj」,「Spark」,「30」,「I LOVE SCALA!!」)

  • は、企業レベルでビッグデータを実際に開発する際には、必ずTupleを繰り返してデータ構造を表現し、Tupleを用いてビジネスロジック
  • を処理する.
        val info = ("yaj", "Spark", "30", "I LOVE SCALA!!!")
        println(info._4)
    
  • Tupleのもう一つの非常に重要な使用は関数としての戻り値であり、Tupleではいくつかの値を返す、SparkContextソースコードを例に
  • を説明する.

    完全な例は次のとおりです.
        object HelloMapTuple {
      def main(args: Array[String]): Unit = {
    
        //         apply   Map  ,       Map   , apply         
        val bigDatas = Map("Spark" -> 5, "Hadoop" -> 11)
    
    
        val programingLanguage = scala.collection.mutable.Map("Scala" -> 13, "Java" -> 23)
        programingLanguage("Scala") = 10
        for((name, age)  13, "Java" -> 23)
        personsInformation -= ("Scala")
        for((name, age)  13, "Java" -> 23, "Python" -> 10)
        for((name, age)