scala集合コンテナ構文(一)
4842 ワード
Day 4集合コンテナ基礎構文1
1.タプル:
Tuple1 - Tuple22
1.1
複数の単一の値がかっこで囲まれていると、メタグループが構成されます.
eg:
val g=(1,1.2,'A')三元グループ//(Int,Double,Char)タイプの元グループ
1.2
マッピングは2元のメタグループであり、メタグループは異なるタイプの値の集約です.
1.3
1.4
メタグループは、関数が1つ以上の値を返す必要がある場合に使用できます.
1.5
下の2つの違いに注意
2.マッピング:
Map(Mapコレクション内の各要素は二元グループ)
2.1
二元グループの表示方法:
2.2
可変マッピングと非可変マッピングに分ける
注意:
2.3
Mapマッピングオブジェクトの構築
2.4
emptyメソッドを使用して空のコレクションを構築
注意:
2.5
keyによるvalue値の取得
3つの方法:
2.6
Option(集合のようなクラス)
サブクラス:
注意:
OptionクラスはNullPointerExceptionが発生しないように設計されています.
2.7
要素の追加++++: (+=++=) insert insertAll append appendAll
2.8
要素の除去 -- (-= --=) remove drop dropRight
2.9
巡回集合
eg:
2.10
ファスナー操作
eg:
3.集合
1.集合は次のように分類されます.
シーケンスセットマッピング
2.Seq
重複要素の保存を許可する前後順の価値のあるシーケンスです.
2.1全体的に次のように分けられます.
インデックスシーケンスIndexedSeq、リニアシーケンス(チェーンテーブル)LinearSeq.
IndexSeqインデックスシーケンス:
ArrayBufferが下付きであるなど、任意の要素にフルスケールの下付きで迅速にアクセスできます.
LinearSeq線形シーケンス:
頭尾部分に分けられ,head,tail,isEmpty法などを用いる.
注意:
Arrayは実は本物のシーケンスではなく、ArrayをWrappedArray(mutable)にパッケージすることで、集合のように使用することができます.
3.Set
Setは重複していない要素のセットです.
4.Map
Mapは(K,V)対偶のセットであり,ここでキーは一意でなければならない.
5.
各Scala集合の特質またはクラスには、集合内のインスタンスを構築するために使用できるapplyメソッドを持つ伴生オブジェクトがあります.
eg:
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
要素の追加
2.8
要素の除去
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")