Scala(七)-②-データ構造-集合-Queue-Cap-set
5539 ワード
Queue
① Why
なぜ学習キューですか?一つは、キューが生活中の多くのシーンを表示することに対応し、キューを知る、プログラムを書くことでキューシミュレーションを行うことができる.第二に、キューには、優先キューを利用して商品の販売量の上位10名を取得するなど、実際の応用シーンが多く、優先キューを販売量の優先順位に置く限り、販売量の高い者はキューの末尾に位置し、固定キューの大きさは10であり、リアルタイムで上位10名を維持することができる.
② How
創
削除
増分-単一-キューに要素を追加
追加削除-単一-出入りキュー
増分-一括-複数の要素を追加
追加→集合→集合を要素として追加
調べる
③ What
キューは
④ Details入力および出力は scalaでは、設計者が直接キュータイプQueueを提供して使用する. scalaには が一般的に使用されている.
Map
① Why Mapは何の重要なデータ構造ですか.私たちはMapでキャッシュすることができて、迅速なアクセスデータを実現することができます.
② How
Mapの四中方式を作成する可変のMapコード を構築する可変Map を構築空のmap を構築偶数グループ方式作成
検索-mapの要素
メソッド1-かっこアクセス元素に放出異常がない場合. Javaとは異なり、Javaのmapはnullを返す.
方式二-containsを用いた判断
方式3-getメソッドの使用
メソッド4-getOrElse(key,default)
選択方法のまとめ である必要があります.もし私たち 単純に1つの値を得ることを望む場合はmapを用いる.getOrElse()
変更→mapの要素の変更 mapは可変で修正できます.そうしないと、 とエラーが発生します. keyがあれば更新、keyがなければ を追加
インクリメンタル-mapに要素を追加
方法1:+=を使用して追加
削除-mapの要素を削除
-=演算子の使用
遍歴-mapの4の遍歴
方式一-取(k,v)
方式二-取key
方式3-valueを取る
方式四-ユニットを取る
③ What HashMapはハッシュリスト(配列+チェーンテーブル) である.
④ Detailsで作成するMapは、デフォルトでは可変(Immutable)であるため、インポートする必要はない. Mapの である.
Set
① Why
重複しない要素を格納する必要がある場合は、Set.を使用します.
② How
作成
可変setの作成
可変setの作成
追加
可変setセットの追加
削除
可変setセットの削除、値による削除
遍歴する
① Why
なぜ学習キューですか?一つは、キューが生活中の多くのシーンを表示することに対応し、キューを知る、プログラムを書くことでキューシミュレーションを行うことができる.第二に、キューには、優先キューを利用して商品の販売量の上位10名を取得するなど、実際の応用シーンが多く、優先キューを販売量の優先順位に置く限り、販売量の高い者はキューの末尾に位置し、固定キューの大きさは10であり、リアルタイムで上位10名を維持することができる.
② How
創
val q = mutable.Queue[Any]()
print(q)
削除
増分-単一-キューに要素を追加
// 2.
q += 1
println(q)
追加削除-単一-出入りキュー
// 3.
// 3.1 ,
val n = q.dequeue()
println("dequeue q = " + q, "val = " + n)
// 3.2 ,
q.enqueue(6)
println("q = " + q)
増分-一括-複数の要素を追加
// 2.1
q ++= List(4, 3, 2)
println(q)
追加→集合→集合を要素として追加
// 2.2
q += List(4,3,2)
println(q)
調べる
// 4. ,
println("q head = " + q.head)
println("q last = " + q.last)
println("q = " + q)
// tail
println(q.tail.tail.tail)
③ What
キューは
である、下位層では
または
で実現することができる.配列を用いるとキューを環状キューにすることができる.チェーンテーブルでは、ヘッドノードにおけるヘッドテールポインタのメンテナンスにそれぞれ用いることができる.④ Details
に従う.すなわち、キューに格納データは、先に取り出す.後置の要後取scala.collection.mutable.Queue
とscala.collection.immutable.Queue
があり、一般的に開発では
Map
① Why
② How
Mapの四中方式を作成する
val map1 = Map("Alice" -> 10, "Bob" -> 20, "City" -> " ")
println(map1)
val map2 = scala.collection.mutable.Map("Alice" -> 10, "Bob" -> 20, "City" -> " ")
println(map2)
val map3 = new scala.collection.mutable.HashMap[String, Int]
println(map3)
val map4 = scala.collection.mutable.Map(("Alice", 10), ("Bob", 20), ("City" , " "))
println(map4)
検索-mapの要素
メソッド1-かっこアクセス
scala> map4("City")
res11: Any =
scala> map4("City1")
java.util.NoSuchElementException: key not found: City1
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:59)
at scala.collection.mutable.HashMap.apply(HashMap.scala:65)
... 32 elided
方式二-containsを用いた判断
scala> val key = "City1"
key: String = City1
scala> if (map4.contains(key)) {
| println("key , =" + map4(key))
| }else {
| println("key ")
| }
key
方式3-getメソッドの使用
val some = map4.get("City")
if (some != None)
println(some.get, "some's class = " + some.getClass())
メソッド4-getOrElse(key,default)
key
val city = map4.getOrElse("City1", "beijing")
println(city)
選択方法のまとめ
Mapに対応するkey
がある場合は、 map(key)
、
Mapがkey
あるかどうか、そして異なるビジネスロジックがあるならば、mapを使用します.contains(key) 変更→mapの要素の変更
map4("City")="quanzhou"
println(map4)
インクリメンタル-mapに要素を追加
方法1:+=を使用して追加
scala> map4 += ("name"->"Mr.su")
res23: map4.type = Map(Bob -> 20, name -> Mr.su, Alice -> 10)
scala> map4 += ("City"->"Beijing")
res24: map4.type = Map(Bob -> 20, City -> Beijing, name -> Mr.su, Alice -> 10)
scala> println(map4)
Map(Bob -> 20, City -> Beijing, name -> Mr.su, Alice -> 10)
削除-mapの要素を削除
-=演算子の使用
scala> map4 -= ("name", "City")
res21: map4.type = Map(Bob -> 20, Alice -> 10)
scala> println(map4)
Map(Bob -> 20, Alice -> 10)
遍歴-mapの4の遍歴
方式一-取(k,v)
for ((k,v)
方式二-取key
for (k
方式3-valueを取る
for (v
方式四-ユニットを取る
for (e
③ What
④ Details
Map
は秩序である.
と
は同じである. k,v
下層はTuple2
Set
① Why
重複しない要素を格納する必要がある場合は、Set.を使用します.
② How
作成
可変setの作成
val s = Set(1,2,3)
println(s)
可変setの作成
val mset = scala.collection.mutable.Set(1,2,3, "Hello")
println(mset)
追加
可変setセットの追加
mset += 4
println(mset)
mset.add(5)
println(mset)
mset.+=(6)
println(mset)
削除
可変setセットの削除、値による削除
mset -= 2
println(mset)
mset.remove("Hello")
println(mset)
mset.remove("Nothing")
println(mset)
遍歴する
for(item