Kotlin學習(二)List集合類

2021-09-01 14:52:28 字數 3739 閱讀 2952

list集合類

kotlin的集合分類:

通常集合中的物件是指集合中物件的引用,集合型別主要有list(列表),set(集),map(對映)。

使用listof()函式建立list

建立不可變list(唯讀)

用下面函式建立的list是唯讀的,不可變的、可序列化的:

listof

()用於建立沒有元素的空list

listof

(vararg elements: t)用於建立擁有多個元素的list

listof

(element: t)用於建立只有乙個元素的list

例如:

建立乙個空list

val list : list

=listof()

log.

e(tag,list.

tostring()

)

列印出:

建立多個元素的list

val list: list

=listof

("1"

,"2"

,"2"

,"3"

) log.

e(tag, list.

tostring()

)

列印出[1, 2, 2, 3]

list的可變集合

list的可變集合有兩種:

在mutablelist中,新增了add/addall、remove/removeall/removeat、set、clear、retainall等更新修改的操作函式。

使用mutablelistof()建立可變集合

val list =

mutablelistof

("1"

,"2"

,"2"

,"3"

) list.

add(0,

"0")

//下標0 的位置新增"0」

log.

e(tag, list.

tostring()

)

列印出[0, 1, 2, 2, 3]

使用tomutablelist()轉換函式

將乙個不可變list轉變為可變list,可直接呼叫tomutablelist()

val list =

listof

("1"

,"2"

,"2"

,"3"

)// 呼叫tomutablelist()函式進行轉換 宣告新的 mlist

val mlist =list.

tomutablelist()

mlist.

add(

"4")

mlist.

add(2,

"22"

) log.

e(tag, mlist.

tostring()

)//如果現在列印list 控制台無輸出結果

列印出[1, 2, 22, 2, 3, 4]

遍歷list元素

使用iterator迭代器遍歷list元素

val list =

listof

("1"

,"2"

,"2"

,"3"

)val mlist =list.

iterator()

while

(mlist.

hasnext()

)

列印出:

122

3

使用for迴圈遍歷list元素
val list =

listof

("1"

,"2"

,"2"

,"3"

)for

(i in list.indices)

列印結果同上。

逆向迴圈

val list =

listof

("1"

,"2"

,"2"

,"3"

)for

(i in list.size downto 0

)

列印出陣列下標

432

10

使用函式withindex()遍歷list元素
val list =

listof

("1"

,"2"

,"2"

,"3"

)for

((index, value)

in list.

withindex()

)

使用foreach遍歷list元素
val list =

listof

("1"

,"2"

,"2"

,"3"

) list.

foreach

常見的list元素操作函式

add, remove, set, clear 這些都是基本操作。

list1.

retainall

(list2)

list.

contains

(」6「)

//是否有」6「

list.

elementat(1

)

如果越界會拋indexoutofbound***ception。

list.

elementatorelse

(100,)

//預設返回0

list.

elementatornull

(100

)//返回null

list集合運算的基本函式

過濾操作函式

對映操作符

排序操作符

生產操作符

val list1 =

arraylistof

("a1"

,"a2"

,"a3"

)val list2=

arraylistof

("b1"

,"b2"

,"b3"

,"b4"

) log.

e(tag,list2.

zip(list1)

.tostring()

)

列印出[(b1, a1), (b2, a2), (b3, a3)]

val list1 =

arraylistof(0

,1,2

,3)val list2 =

arraylistof(4

,5,6

,7,8

) log.

e(tag,list1.

plus

(list2)

.tostring()

)

列印出[0, 1, 2, 3, 4, 5, 6, 7, 8]

Java之集合List的學習(二)

在初步學習了list集合類後,對list的三個子實現類也進行了學習。list三個子實現類分別是 arraylist,vector,linklist.特點 arraylist 底層資料結構式陣列結構,查詢塊,增刪慢 從記憶體角度考慮 執行緒不安全的,不同步的,執行效率高 vector 這是乙個執行緒安...

List集合學習筆記

asp.net unity開發 net培訓 期待與您交流!集合 1特點 集合中存放的都是物件,長度是不可變的,陣列可以存放基本資料型別,長度不可變。2框架 collection list 元素是有序的,元素可以重複,因為該集合體系有索引,特有的迭代器,listiterator是iterator的子介...

kotlin學習二 函式

宣告 funfun double x int int入口函式 mainfun main 引數 name type 函式引數使用 pascal 表示法定義,即 name type。引數用逗號隔開。每個引數必須有顯式型別 fun powerof number int,exponent int 預設引數 ...