Scala:Setコレクションの操作

18426 ワード

1.宣言
現在の内容は主に本人の学習と復習に用いられ、現在の内容は主にテストセットの使用である.
参考資料: 現在のセットは、次の2つに分けられます.
  • 可変Setセット:scala.collection.mutable.Set
  • 可変Setセット:scala.Set
  • 2.共通のSet基本操作
    この動作には、可変および非可変のセットの動作1が存在することができる.セットの作成:
  • var =Set()(空のSetを作成)
  • var =Set[ ]()
  • var =Set[ ]( )
  • var :Set[ ]=Set[ ]( )
  •   var set = Set(1, 2, 3, 4, 5); // Set          
      var s: Set[Nothing] = Set(???); // Nothing    ???
      var sqlOption: Set[String] = Set[String]("insert", "update", "delete", "select");
      var emptySet = Set();
    

    2.基本プロパティの表示
      println(set); //     
      println(set.drop(1)); //     List          ,          ,1           
      println(set.contains(6)); //         6
      println(set.exists(_ == 1));
      println(set.dropWhile(_ == 1)); //    List  
      println(set.size); //         Set  
      println(set(3)); //             ,true
    

    ある要素が存在するか否かをcontainsで判断し、sizeで集合長を取得することは基本的にListの使用方法と一致するが、setは名前(値)でそのデータが存在するか否かを判断することができる
    4.データの追加操作:+=.+(element)
     //       
     set += 999;
     println(set); //     +=      
     set.+(888); //         
     set = set.+(777);
     println(set); //             
    

    5.データ削除操作:-=.-(element)
     //       
     set -= 999;
     set = set.-(777);
     println(set);
    

    6.集合の基本操作:交差、並列、差分
     //        
     var A = Set(1, 2, 3, 4, 5);
     var B = Set(1, 2, 3, 4, 8, 9);
     // 1.      
     println("A:" + A);
     println("A B   :" + A.++(B));
     // 2.         
     println("A:" + A);
     println("A B   :" + A.intersect(B));
     println("A B   :" + A.&(B));
    
     // 3.  
     println("A B   :" + A.&~(B)); //      
     println("   A    B    :" + A.--(B));
    

    7.findとfilterの方法
      //   3
      println(set.find(_ == 2)); //      None,          None
      println(set.find(_ == 5)); //     Some(5)//                 
      println(null == None); // false
    
      //   4
      println(set.filter(_ != 5)); //      Set  
    

    3.可変Setセットの使用
    
    import scala.collection.mutable.{ Set => ModifySet }
    
    /**
     * @description           Set  
     * @author hy
     * @date 2020-06-27
     */
    object ModifySetTest {
      var set = ModifySet(1, 2, 3, 4, 5, 6);
    
      var strSet: ModifySet[String] = ModifySet();
    
      def main(args: Array[String]): Unit = {
        set.add(5); //     
        println("    5  set=" + set);
        set.remove(5); //      
        println("    5  set=" + set);
        //            5,     add  
        set += 5;
        println("set+=5    :" + set);
        //              2
        set -= 2;
        println("set-=2    :" + set);
        //
        //set(5) = false;//     set    5
        set.update(5, false);//     
        //    
        set(8)=true;
        // set.update(8,true) //
        println("set:" + set);
        //         set     add remove           
      }
    }
    

    テストにより、addメソッドとremoveメソッドを使用して削除操作を追加できることが判明しました.import .{ => }, scala 4.まとめ
    1.現在のScalaにおけるSet集合は可変集合と不可変集合に分けられ、異なるクラスを使用する
    2.Setを使用すると、contains,filter,find のような共通の操作方法がいくつか存在する.
    3. Set ( )
    以上は個人的な見解ですが、問題があれば本人に連絡してください.