scala集合コンテナ構文(一)

4842 ワード

Day 4集合コンテナ基礎構文1
1.タプル:
Tuple1 - Tuple22
1.1
複数の単一の値がかっこで囲まれていると、メタグループが構成されます.
eg:
val g=(1,1.2,'A')三元グループ//(Int,Double,Char)タイプの元グループ
1.2
マッピングは2元のメタグループであり、メタグループは異なるタイプの値の集約です.
    ("key",value) n=2 


1.3
      //    _1、_2、_3       
      val h=g._1   val h=g _1
      //           
      val (first,second,three)=(1,3.14,"Free");
      val (first,second,_)=(1,3.14,"hhhhhhhhhhhh")
      val (name,age,phone,address)=("tom",23,110,"  ")


1.4
メタグループは、関数が1つ以上の値を返す必要がある場合に使用できます.
        ,StringOps partition           ,                    :"New York".partition(_.isUpper)


1.5
下の2つの違いに注意
    val x,y,z=(1,"hello",2)
    val (x,y,z)=(1,"hello",2)    

2.マッピング:
Map(Mapコレクション内の各要素は二元グループ)
2.1
二元グループの表示方法:
    (key,value)   key -> value


2.2
可変マッピングと非可変マッピングに分ける
    mutable.Map[K,V]
    immutable.Map[K,V]  
    Map <==> immutable.Map <==> Predef.Map
    

注意:
        scala.collection.Map  immutable.Map mutable.Map   
        Scala         , scala.collection                  


2.3
Mapマッピングオブジェクトの構築
    Map    trait   object
            :        
    Map(elem1,elem2,elem2,...)
    <===>
    Map.apply(elem1,elem2,elem2,...)


2.4
emptyメソッドを使用して空のコレクションを構築
    import scala.collection.mutable;
    val mutableMap=mutable.Map.empty[K,V]
    

注意:
        val map=muatble.Map();
        val map=mutable.Map[K,V]();
        //        map     。(Nothing       ,    )


2.5
keyによるvalue値の取得
3つの方法:
        map.apply(key)
        map.get(key)
        map.getOrElse(key,defaultValue)


2.6
Option(集合のようなクラス)
            0  1   。
    

サブクラス:
        Some(elem)  
        None
     Some      get
    

注意:
OptionクラスはNullPointerExceptionが発生しないように設計されています.
2.7
要素の追加
  • ++++: (+=++=) insert insertAll append appendAll

  • 2.8
    要素の除去
  • -- (-= --=) remove drop dropRight

  • 2.9
    巡回集合
    eg:
            for(elem 

    2.10
    ファスナー操作
        zip        “    ”
        zipAll        “   ”,    ,           ;                   ;                    ;
        zipWithIndex                  ,     _2             。
        
    
        unzip             ,         _1       ,_2        。        。
        unzip3            ,         _1       ,_2        ,_3        。         。
                
        
    

    eg:
            val price=List(2,10,8)
            val num=List(10,10,10)
    
            val collection=list1.zip(list2)
            val newColl=for( (price,num)  x._1*x._2).sum
    

    3.集合
    1.集合は次のように分類されます.
    シーケンスセットマッピング
         Traversable(Trait) 
                 |
               Iterable(Trait)   
        ———————————————————————————-
        |             |            |
        Seq          Set         Map(Trait/object)
    
    
    

    2.Seq
    重複要素の保存を許可する前後順の価値のあるシーケンスです.
    2.1全体的に次のように分けられます.
    インデックスシーケンスIndexedSeq、リニアシーケンス(チェーンテーブル)LinearSeq.
                            Seq
           ———————————————————————————-
           |              |            |
        IndexedSeq      Buffer     LinearSeq 
           |               |           |
        Array Vector Range     |          List LinkedList  
            String StringBulid   ArrayBuffer   ListBuffer  Queue Stack Stream View
                
                 
        
    

    IndexSeqインデックスシーケンス:
    ArrayBufferが下付きであるなど、任意の要素にフルスケールの下付きで迅速にアクセスできます.
    LinearSeq線形シーケンス:
    頭尾部分に分けられ,head,tail,isEmpty法などを用いる.
    注意:
    Arrayは実は本物のシーケンスではなく、ArrayをWrappedArray(mutable)にパッケージすることで、集合のように使用することができます.
    3.Set
    Setは重複していない要素のセットです.
                Set
        ———————————————————————————
        |        |        |       |
        BitSet HashSet ListSet SortedSet
                                  |
                                TreeSet
         SortedSet ,              。
    
    

    4.Map
    Mapは(K,V)対偶のセットであり,ここでキーは一意でなければならない.
                Map
          ———————————————————————————
          |         |        |      |
        HashMap LinkedListMap ListMap SortedMap
        TreeMap
        SortedMap        。
    
    
    

    5.
    各Scala集合の特質またはクラスには、集合内のインスタンスを構築するために使用できるapplyメソッドを持つ伴生オブジェクトがあります.
    eg:
        Iterable(0xFF, 0xFF00, 0xFF0000)  
        Seq(color.RED, color.GREEN, Color.BLUE)  
        Map(color.RED -> -0xFF0000, Color.GREEN -> 0xFF00, Color.BLUE -> 0xFF)  
        SortedSet("Hello" , "World")