Java集合類系列(3)--遍歷集合


簡單遍歷
使用System.out的println()方法
使用System.out的println()方法來輸出集合對象時,將輸出[ele1,ele2,.....]



以上代碼輸出結果爲[a, b, c]

使用Iterator接口迭代訪問集合元素

不知道你們最開始接觸遍歷集合元素時使用的是什麼方法,我最開始學習Java集合遍歷的時候看的是視頻教程,其中講到遍歷集合就是使用Iterator接口迭代訪問集合元素的,對這種方法仍是情有獨鍾的。
使用Iterator接口遍歷集合其實就是使用Iterator中的hasnext和next,使用hasnext來判斷集合中的下一個元素是否爲空,若是是空則返回false,若是元素不爲空則返回true,進入循環體使用next將下一個值打印出來。
示例代碼

public static void main(String[] args) {
		
		//建立list對象
		List<String> list = new ArrayList<String>();
		
		//添加數據
		list.add("張三");
		list.add("李四");
		list.add("王二");
		list.add("麻子");
	//使用Iterator遍歷集合元素
		
		Iterator<String> iterator = list.iterator();
		
		while (iterator.hasNext()) {
			
			System.out.println(iterator.next());
			
		}

這段代碼是以list爲準進行Iterator迭代輸出,一樣對於Set和Map同樣是可使用Iterator進行迭代輸出遍歷集合元素,使用Iterator進行迭代輸出集合元素的關鍵就是將原有集合轉化成Iterator,由於咱們最終是要使用hasnext和next進行輸出的,只有將原有集合元素進行Iterator轉化,咱們才能進行hasnext和next的調用,掌握這一點也就掌握了Iterator遍歷集合的方法。
另外java8爲Iterator新增了一個forEachRemaining方法,咱們經過這個方法可使用Lambda表達式來遍歷Iterator,示例以下
public static void main(String[] args) {
		
		//建立list對象
		List<String> list = new ArrayList<String>();
		
		//添加數據
		list.add("張三");
		list.add("李四");
		list.add("王二");
		list.add("麻子");
	//使用Iterator遍歷集合元素
		
		Iterator<String> iterator = list.iterator();
		
		iterator.forEachRemaining((String name)->System.out.println(name));


咱們能夠看到,相比較上一個代碼中,紅色代碼是主要的修改代碼,這就是使用Lambda表達式來遍歷Iterator。

使用foreach循環遍歷集合元素

在上面咱們那能夠看到使用Iterator的forEachRemaining方法對集合進行遍歷一行代碼就能夠搞定,相比較使用hasnext和next更加簡潔方便,可是你們可能對Lambda表達式不太熟悉,那麼咱們可使用foreach來循環遍歷集合元素。
foreach是Java5的特性,感受這個方法遍歷集合元素真是很簡單,話很少的說,讓咱們來看下如何使用的吧!

public static void main(String[] args) {
		
		//建立list對象
		List<String> list = new ArrayList<String>();
		
		//添加數據
		list.add("張三");
		list.add("李四");
		list.add("王二");
		list.add("麻子");
	//使用foreach遍歷集合元素
		
		for (String string : list) {
			System.out.println(string);
		}


這就是foreach遍歷集合元素,看起來都很簡潔,不妨多嘗試一下這樣的方法。這段代碼什麼意思呢?foreach的使用就是使用for(),括號裏面是A a:b的形式,b通常就是指的你的集合對象,好比你建立了一個LIst對象,List<String> list = new ArrayList<>(); 那麼這個b就是list,前面的A通常就是指的你集合裏面的元素類型,而a就是咱們要打印的元素的一個變量,把集合裏的每個值賦值給a而後逐個打印輸出。


使用Lambda表達式遍歷集合

對於簡單遍歷輸出結果通常是[a,b]這種形式,彷佛用到的不是太多,咱們還可使用Lambda表達式進行集合的遍歷,在講遍歷以前讓咱們來先簡單認識一下Lambda表達式吧!

Lambda表達式

在最開始接觸lambda表達式的時候是一頭霧水,說白了就是感受看不懂,不知道怎麼使用,lambda表達式是Java8新增的一個特性,簡單來講是能夠將一些複雜的代碼簡潔化,我以爲關於lambda表達式這塊能夠進行專題學習,否則不能都透徹理解它,由於今天主要講的仍是Java集合,其中要使用lambda表達式,所以只作簡單介紹。
在我看來lambda最簡單的一個形式就是 () -> a,什麼意思呢?咱們再稍微詳細的說一下,咱們看以下:
1. () -> 5 這表明lambda表達式不須要參數,返回值爲5
2. x -> x*3 這表明lambda表達式須要接受一個參數,而後返回這個參數的二倍。
3. (a,b) -> a+b 這表明lambda表達式須要接受兩個參數,而後返回這兩個參數的和。
等。
相信看到這裏咱們對lambda表達式彷佛有那麼點明白了,可是仍是有點模糊,別急,咱們再繼續往下看,咱們來舉個例子
public static void main(String[] args) {
		
		//建立list對象
		List<String> list = new ArrayList<String>();
		
		//添加數據
		list.add("張三");
		list.add("李四");
		list.add("王二");
		list.add("麻子");
		
	//使用Lambda表達式遍歷集合元素
		
		list.forEach((String name)->System.out.println(name));


使用Lambda表達式遍歷集合用到了一個foreach默認方法。關於Lambda的學習還能夠繼續深刻,以專題形式進行學習,私下應儘量找資料自主學習,後續也會單獨寫一篇有關Lambda表達式的文章!
好了,以上就是一些簡單的遍歷集合元素的方法了!
相關文章
相關標籤/搜索