scala学習ノート02-scalaにおける集合タイプ:Array、List、Map、tuple、Option
30677 ワード
scalaのArray:
Scalaは配列と呼ばれるデータ構造を提供し、配列は同じタイプの要素を格納する固定サイズの順序集合である.配列は、データ・セットを格納するために使用されますが、配列を同じタイプの変数と見なす集合は、通常より便利です.
scalaのArrayBuffer:
Array配列はjavaの配列と一致し、配列の長さは可変ではないが、scalaには可変配列(ArrayBuffer)が提供され、要素を動的に増やしたり、Arrayとの相互回転を実現したりすることができる.
scalaのlist:
Scalaリストリストリストは配列に似ています.すべての要素のタイプは同じですが、リストは可変ではありません.値が定義されると変更できません.次に、リストは再帰的な構造(つまりリンクテーブル構造)を持ち、配列は
scalaの可変チェーンテーブル-ListBuffer:
Listbufferの値も長さも可変であり、ListBufferを使用するにはパッケージscalaをインポートする必要がある.collection.mutable.ListBuffer
scalaのMap:
は、キー/値ペアのセットのオブジェクトです.任意の値はキーに基づいて取得できます.キーはマッピングで一意ですが、値は必ずしも一意ではありません.マッピングはハッシュ・テーブルとも呼ばれます.マッピングには、可変と可変の2種類があります.可変オブジェクトと可変オブジェクトの違いは、オブジェクトが可変でない場合、オブジェクト自体が変更できないことです.
scalaのメタグループ-tuple
Scalaメタグループは、固定数のアイテムを組み合わせて、全体として渡すことができます.配列やリストとは異なり、メタグループは異なるタイプのオブジェクトを収容できますが、それらも可変ではありません.
scalaのOption:
は、指定されたタイプのゼロまたは要素からなるコンテナです.Option[T]は、欠落した値を表すSome[T]またはNoneオブジェクトであってもよい.
Scalaは配列と呼ばれるデータ構造を提供し、配列は同じタイプの要素を格納する固定サイズの順序集合である.配列は、データ・セットを格納するために使用されますが、配列を同じタイプの変数と見なす集合は、通常より便利です.
//
var arr01:Array[Int] = new Array[Int](10);
var arr02 = new Array[String](10)
//
for (x <- 0 to arr03.length-1) println(arr03(x))
arr03.foreach(v => println(v))
arr03.foreach(println(_))
//mkstring
// ',' , ‘ <>’
println(arr03.mkString(",")) //1,2,3,4,5,6,7,8
println(arr03.mkString(",",",">")) //<1,2,3,4,5,6,7,8>
// 3 take()
arr03.take(3).foreach(println(_))
// **** ****
concat(arr01,arr03).foreach(println(_))
// 1 100 , 3
range(1,20).foreach(println(_))
range(1,100,3).foreach(println(_))
scalaのArrayBuffer:
Array配列はjavaの配列と一致し、配列の長さは可変ではないが、scalaには可変配列(ArrayBuffer)が提供され、要素を動的に増やしたり、Arrayとの相互回転を実現したりすることができる.
// arrayBuffer
var arr01 = new ArrayBuffer[String]()
var arr02 = ArrayBuffer("h1","h2","h3")
// arr02 ** ()
arr02 += ("h4","h5","h6","h7")
// arr02 arr01
arr01++=arr02
/**
* insert arr02
* ArrayBuffer(hello, h2, h3, h4, h5, h6, h7)
* ArrayBuffer(hello, h2, h3, new_value, h4, h5, h6, h7)
*/
println(arr02)
arr02.insert(3,"new_value")
// -= remove()
arr01-="d" // d
arr01.remove(4,6) // 4 6
// array arrayBuffer
val array = arr02.toArray // array
val buffer = array.toBuffer // arrayBuffer
//max min sum
val arr03 = ArrayBuffer(23, 32, 56, 64, 86, 12, 33, 34) //int
println(arr03.min) //
println(arr03.sum) //
// sortwith
println(arr03.sortWith(_>_).mkString("-"))
// quickSort quickSort array
println(quickSort(arr03.toArray))
scalaのlist:
Scalaリストリストリストは配列に似ています.すべての要素のタイプは同じですが、リストは可変ではありません.値が定義されると変更できません.次に、リストは再帰的な構造(つまりリンクテーブル構造)を持ち、配列は
// :
var list=List() // List
var list2=List("zs","ls") // List
var list3=“aa”::(“bbb”::Nil) // list3 aaa bbb
// : ::Nil
//LIST :
list.head // LIST
list.tail // LIST,
list.isEmpty //LIST
// LIST
list1:::list2 list.:::(list2) List.concat(list1,list2)
// LIST :list1. contains(“aaa”)
// list true false
println(l5.contains("hello"))
// LIST : list1.filter(x=>x%2==0)
//
println(l5.filter(d => d.eq("h1")))
//
println(l5.filter(d => d.startsWith("m")))
// :+ +: list ( )
var list1 = List(1, 2, 3, "abc")
//:+
val list2 = list1 :+ 4 // (1,2,3,"abc", 4)
println(list1) //list1 (1, 2, 3, "abc"), list1
println(list2) // [1, 2, 3, "abc", 4]
scalaの可変チェーンテーブル-ListBuffer:
Listbufferの値も長さも可変であり、ListBufferを使用するにはパッケージscalaをインポートする必要がある.collection.mutable.ListBuffer
//listbuffer
var lb1=ListBuffer[String]("1","2","3")
var lb2 = ListBuffer("a1","a2","a3")
// listbuffer
lb2+="a4"
lb2.append("a5","a6")
// list list list
println(lb1 ++= lb2)
scalaのMap:
は、キー/値ペアのセットのオブジェクトです.任意の値はキーに基づいて取得できます.キーはマッピングで一意ですが、値は必ずしも一意ではありません.マッピングはハッシュ・テーブルとも呼ばれます.マッピングには、可変と可変の2種類があります.可変オブジェクトと可変オブジェクトの違いは、オブジェクトが可変でない場合、オブジェクト自体が変更できないことです.
//map
var m1 = Map(" "->35," l"->33)
var m2 = Map[Int,String](1->" ",2->" ")
var m3 = Map[String,Long]((" ",55),(" ",66))
// map
m1+=(" "->2)
m1+=((" ",33),(" ",53))
//map
// map , java null,scala ,
//println(m1(" "))
println(m1.get("lll")) //None
println(m1.getOrElse("mmm",888)) // getOrElse
//map
for((k,v) <- m2) println((k,v)) // kv
for(k <- m2.keySet) println(k) // key
for(v <- m2.values) println(v) // value
scala HashMap:import scala.collection.mutable.HashMap
// HashMap
var hm1 = HashMap[String,Int]((" ",11),(" ",22), (" ",33))
//map
hm1(" ") = 88
println(hm1(" "))
//map
hm1.put(" ",35)
scalaのメタグループ-tuple
Scalaメタグループは、固定数のアイテムを組み合わせて、全体として渡すことができます.配列やリストとは異なり、メタグループは異なるタイプのオブジェクトを収容できますが、それらも可変ではありません.
// tuple
var t1 = (1,"hello","ma","kk",235,2,5,3,4,4,5,5,5,5,6,3,452) //
// tuple 1 tuple 22
var t2 = new Tuple2("woshi2","mmmm")
println(t1) // t1
println(t1._17) //
scalaのOption:
は、指定されたタイプのゼロまたは要素からなるコンテナです.Option[T]は、欠落した値を表すSome[T]またはNoneオブジェクトであってもよい.
// option
var find:Option[String] = op1(1)
println(find) //Some(zx)
println(find.get) //zx
println(find.getOrElse(" ")) // none , getOrElse
// option
def op1(id:Int):Option[String]={
if (id == 1){
Some("zx")
}else{
None
}
}