kotlin集合操做

1.1 總數操做html

方法做用:htm

any--判斷集合中是否有知足條件 的元素;對象

all--判斷集合中的元素是否都知足條件;blog

count--查詢集合中知足條件的元素個數;排序

fold--在給定初始值的基礎上,從第一項到最後一項進行累加;ip

foldRight--在給定初始值的基礎上,從最後一下到第一項進行累加,與fold只是的方向不一樣;element

forEach--循環遍歷元素,元素是it,可對每一個元素進行相關操做;get

forEachIndexed--循環遍歷元素,同時獲得元素index(下標);it

max--查詢最大的元素,若是沒有則返回null;io

maxBy--獲取方法處理後返回結果最大值對應的那個元素的初始值,若是沒有則返回null;

min--查詢最小的元素,若是沒有則返回null;

minBy--獲取方法處理後返回結果最小值對應那個元素的初始值,若是沒有則返回null;

none--判斷集合中是否都不知足條件,是則返回true;

reduce--與fold卻別在於沒有初始值,或者說初始值爲0,從第一項到最後一項進行累加;

reduceRight--從最後一下到第一項進行累加,與reduce只是方向的不一樣;

sumBy--獲取方法處理後返回結果值的總和;

1.2 過濾操做

方法做用:

drop--返回去掉前n個元素後的列表;

dropWhile--返回從第一項起,去掉知足條件的元素,直到不知足條件的一項爲止;

dropLastWhile--返回從最後一項起,去掉知足條件的元素,直到不知足條件的一項爲止;

filter--過濾掉全部不知足條件的元素;

filterNot--過濾掉全部知足條件的元素;

filterNotNull--過濾掉全部值爲null的元素;

slice--過濾掉非指定下標的元素,即保留下標對應的元素過濾List中指定下標的元素(好比這裏只保留下標爲1,3,4的元素),當過濾list中有元素值大於目標List大小時會出現異常;

take--返回從第一個開始的n個元素;

takeLast--返回從最後一個開始的n個元素;

takeWhile--返回不知足條件的下標前面的全部元素的集合;

1.3 映射操做

方法做用:

flatMap--合併兩個集合,能夠在合併的時候對迭代元素值it多想要的操做;

groupBy--將集合中的元素按照某個條件分組,返回Map;

map--將集合中的元素經過某個方法轉換後的結果存到一個集合中;

mapIndexed--除了獲得轉換後的結果,還能夠拿到index(下標);

mapNotNull--執行方法轉換前過濾掉爲null的元素;

打印結果:

[0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10]

{even=[0,2,4,6,8], odd=[1,3,5,7,9]}

[0,2,4,6,8,10,12,14,16,18]

[0,1,4,9,16,25,36,49,64,81]

[0,2,4,6,8,10,12,14,16,18]

1.4 元素操做

 

方法做用:

contains--判斷集合中是否有指定元素,有則返回true;

elementAt--查找下標對應的元素,若是下標越界會拋IndexOutOfBoundsException異常;

elementAtOrElse--查找下標對應元素,若是越界會根據方法返回默認值(最大下標經方法後的值);

elementAtOrNull--查找下標對應元素,越界會返回Null;

first--返回符合條件的第一個元素,沒有則會拋NoSuchElementException異常;

firstOrNull--返回符合條件的第一個元素,沒有返回null;

indexOf--返回指定下標的元素,沒有返回-1;

indexOfFirst--返回第一個符合條件的元素下標,沒有返回-1;

indexOfLast--返回最後一個符合條件的元素下標,沒有返回-1;

last--返回符合條件的最後一個元素,沒有則會拋NoSuchElementException異常;

lastIndexOf--返回符合條件的最後一個元素,沒有返回-1;

lastOrNull--返回符合條件的最後一個元素,沒有返回null;

single--返回符合條件的單個元素,若有沒有符合的或符合超過一個分別會拋NoSuchElementException或IllegalArgumentException異常;

singleOrNull--返回符合條件的單個元素,若有沒有符合或超過一個,返回null;

1.5 生產操做

方法做用:

partition--根據判斷條件是否成立,拆分紅兩個Pair;

plus--合併兩個List,能夠用"+"替代;

zip--兩個集合按照下標組合成一個個的Pair塞到集合中返回;

unzip--將包含多個Pair的List轉換成含List的Pair;

Pair對象的數據組成形式爲(first, secord),即Pair(1, 2).first能夠取出數據1。

1.6 排序操做

方法做用:

reversed--相反順序;

sorted--天然排序(升序);

sortedBy--根據方法處理結果進行天然(升序)排序;

sortedDescending--降序排序;

sortedByDescending--根據方法處理結果進行降序排序;

注意:新版kotlin須要調用sorted()這樣帶"ed"後綴的方法才能返回List,而sort()是返回Unit。那麼這兩種方法還有哪些區別,或者說分別在什麼場景下使用?

仍是以sort爲例,sorted()處理過程當中會新建臨時的List來保存結果數據,對原來的調用者List不會作任何改變,因此須要將新建的對象返回;而sort()是在原來的List基礎上進行元素順序的調整,不會新建對象,因此不須要返回List。

 

參考:http://www.cnblogs.com/tgyf/p/6892551.html?utm_source=itdadao&utm_medium=referral

做者:冷鳶J 連接:https://www.jianshu.com/p/05d06419c806 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。
相關文章
相關標籤/搜索