scala基礎 不可變型別操作

2021-07-16 15:22:45 字數 4700 閱讀 8655

執行環境:jdk1.7、scala-2.10.4
packagestudy

/*** 資料結構操作:由於不可變型別,所以每次都需要新定義引數接收

*/objectconstunctor

//元組

classtuple2()

} //集合

classlist2()

//操作::,新增元素到第乙個位置

defaddtest(): any =

//map操作

defaddmap(): any = }//也是給每個元素加3

valmp2 = lis5.map(_ + 3) //匿名函式給lis5的每個元素加3

println("map操作後的結果:")

println("list1:"+mp)

println("list2:"+mp2)

}//reduce和./()操作

defreduceorequal(): any = ;n}

)println("集合執行./(pa)後的返回結果:"+ ss)

//foled操作

valliw = list

(2, 5, 4, 1,6)

valres = liw.foldleft(1)((m, n) => )

println("rigth操作")

valrigth=liw.foldright(2)((m,n)=>)

println("集合執行 it.foldleft(z)(op)後的返回結果:"+ res)

println("集合執行 it.foldright(z)(op)後的返回結果:"+ rigth)

valredu = list

(2, 3, 9,6,7)

//reduce操作

println("集合執行_+_後的結果:"+ redu.reduce(_ + _))

println("集合執行_-_後的結果:"+redu.reduce(_ - _))

}//新增元素

defaddelement(): any =

dataset.foreach(element=>println(element))

//列印結果:
//   list(2017-05-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 27592, 9)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2759, 0)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2760, 1)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2761, 2)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2762, 3)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2763, 4)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2764, 5)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2765, 6)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2766, 7)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2767, 8)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2768, 9)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2769, 10)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2770, 11)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2771, 12)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2772, 13)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2773, 14)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2774, 15)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2775, 16)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2776, 17)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2777, 18)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2778, 19)

//   list(2017-03-05 13:00:02, www.tudou12.com, 134.04.50.22, 2010-06-23 12:20:12, 2779, 20)

} //多條件的篩選

defchoice(): any =

}//遍歷

defforeachelement(): any =

}}}

結果:
擷取元素,前包後不包:list(2, 5)

新增元素後的結果::-------->list(23, 1, 2, 4, 12)

新增list元素後:list(list(23, 1, 2, 4, 12), 21)

map操作後的結果:

list1:list(4, 25, 6, 7)

list2:list(4, 25, 6, 7)

2----->2;

2----->6;

6----->4;

集合執行./(pa)後的返回結果:4

1------>2;

2------>5;

5------>4;

4------>1;

1------>6;

rigth操作

6------>2;

1------>6;

4------>1;

5------>4;

2------>5;

集合執行 it.foldleft(z)(op)後的返回結果:6

集合執行 it.foldright(z)(op)後的返回結果:2

集合執行_+_後的結果:27

集合執行_-_後的結果:-23

去重後的結果

1,2,3,34,新增元素後的結果list(23, 1, 2, 2, 1, 3, 3, 34)

連續相加後的結果:46

連續相減後的結果:-44

滿足條件的值:100

第三個元素是:4

li2的元素是:1;li2的元素是:2;li2的元素是:4;li2的元素是:100;

Scala 不可變List列表操作

建立空列表 scala val list nil val list collection.immutable.nil.type list scala val list list val list list nothing list 建立帶初始值的列表 scala val list list aa b...

python基礎 可變型別與不可變型別

以下是對python 引用和物件理解的延伸 從上面的文章可以總結出python中變數名和物件是分離的,通過 給變數賦值時,實際上引用變數指向乙個物件,而這個物件則是對應記憶體中儲存的一塊資料,取消引用時,python會 記憶體。in 1 a 100這個語句執行的意思是 設定記憶體中一塊區域儲存物件 ...

可變不可變型別

x 10 print id x x 11 print id x 1713078672 1713078704 值改變,id也發生了改變 驗證 int是不可變型別,所有的賦值都是產生新值 float是不可變型別 str是不可變型別 int float str三種型別的值是不可以分割的,是不可分割的整體,...