程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java聚集Set、List、Map的遍歷辦法

Java聚集Set、List、Map的遍歷辦法

編輯:關於JAVA

Java聚集Set、List、Map的遍歷辦法。本站提示廣大學習愛好者:(Java聚集Set、List、Map的遍歷辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java聚集Set、List、Map的遍歷辦法正文


guard

guard可以以逗號或許分號分隔,以逗號分隔表現終究的成果為各個guard的and成果,以分號則是只需隨意率性一個guard為true則終究成果為true。

guard(X, Y) when not(X>Y), is_atom(X) ->
    X + Y.

guard在list comprehension中可以挑選元素:

NewNodes  = [Node || Node <- AllNodes, not gb_sets:is_member(Node, NewQueried)],

guard中不克不及應用自界說函數,由於guard應當包管沒有反作用,但自界說函數沒法包管這一點,所以erlang制止在guard中應用自界說函數。

list comprehension

list comprehension是一個異常有效的語法特征,它可以用於結構一個新的list,可以用於將一種list映照到另外一種list,可以挑選list元素。只需是跟list相干的操作,優先斟酌用list comprehension來完成,將年夜年夜削減代碼量。記住list comprehension的語法:

[Expression || Generators, Guards, Generators, ...]
timer

必定時光後向過程發送新聞:

erlang:send_after(token_lifetime(), self(), renew_token),

一段時光後履行某個函數:

{ok, TRef} = timer:apply_interval(Interval, ?MODULE, announce, [self()]),

gb_trees/gb_set

pattern match

pattern match有太多感化了:

pattern match in case

case中剖斷多個值,比其應用邏輯運算符簡練多了:

A = 1, B = 2,
case {A, B} of
    {_C, _C} -> true;
    {_, _} -> false
end

pattern match to check data type

pattern match可以用於檢測變量的類型,可以用於檢測函數的前往值,就像C/C++中的assert一樣,可以用於盡早檢測出異常狀況:

ping({_, _, _, _} = IP, Port) ->
    ok.
{ok, Ret} = call().

list操作

添加元素

添加元素進list有許多方法:

[2]++[3, 4].
[2|[3,4]].

foldl/foldr

用於遍歷list盤算出一個“累加值“。

lists:foldl(fun(X, Sum) -> X + Sum end, 0, [1,2,3,4,5]).

也就是遍歷一個list,將每一個元素傳遞給fun,將fun的前往值持續傳遞給下一個元素。

zip

將兩個list逐個對應結構出一個tuple,作為新的list裡的元素。

lists:zip([1, 2, 3], [4, 5, 6]).
    => [{1,4},{2,5},{3,6}]

數字進制

16##FF,表現16進制數字0xFF,通用格局為scale##num,即scale進制下的num。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved