1. 程式人生 > >java8對集合的遍歷、過濾、排序

java8對集合的遍歷、過濾、排序

直接上程式碼

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

import com.alibaba.fastjson.JSONObject;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

public class Jdk8 {
	public static void main(String[] args) {
		List<Student> list = new ArrayList<Student>();
		list.add(new Student(33, "aaa", "chuangye"));
		list.add(new Student(25, "bbb", "chuangye"));
		list.add(new Student(9, "ccc", "chuangye"));
		list.add(new Student(11, "ddd", "chuangye"));
		//簡單遍歷
//		list.stream().forEach(stu -> {
//			//此處是對遍歷出來的物件進行操作
//			System.out.println(JSONObject.toJSONString(stu));
//			
//			//輸出結果
//			/**
//			 *  {"address":"chuangye","age":3,"name":"aaa"}
//			 *	{"address":"chuangye","age":5,"name":"bbb"}
//			 *	{"address":"chuangye","age":9,"name":"ccc"}
//			 *	{"address":"chuangye","age":11,"name":"ddd"}
//			 */
//		});
		
//		//過濾,過濾滿足條件的的資料
//		List<Student> resultList = new ArrayList<Student>();
//		resultList = list.stream().filter(e -> !e.getName().equals("bbb")).collect(Collectors.toList());
//		//再遍歷出來
//		resultList.stream().forEach(stu -> {
//			System.out.println(JSONObject.toJSONString(stu));
//		});
//		//輸出結果
//		{"address":"chuangye","age":3,"name":"aaa"}
//		{"address":"chuangye","age":9,"name":"ccc"}
//		{"address":"chuangye","age":11,"name":"ddd"}
		
		//排序 , 也需要新的集合接收
		List<Student> resultList = new ArrayList<Student>();
		resultList = list.stream().sorted(Comparator.comparing(Student::getAge)).collect(Collectors.toList());
		
		resultList.stream().forEach(stu -> {
			System.out.println(JSONObject.toJSONString(stu));
		});
		
		//輸出結果
		/**
		 * 	{"address":"chuangye","age":9,"name":"ccc"}
		 *	{"address":"chuangye","age":11,"name":"ddd"}
		 *	{"address":"chuangye","age":25,"name":"bbb"}
		 *	{"address":"chuangye","age":33,"name":"aaa"}
		 */
	}
}

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
class Student{
	private int age;
	private String name;
	private String address;
}

相關推薦

一種快速集合返回方法

要對一個集合(比如:List)進行遍歷返回一個Map物件,其中物件的一個屬性作為key 引入google的guava包可以快速解決這個問題 maven依賴: <dependency> <groupId>com.googl

java8集合過濾排序

直接上程式碼 import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; import com.al

jQueryDOM元素的向上向下同級過濾

jQuery的向下遍歷 例子: <script src="../JS/Extend.js"></script> <script src="../JS/my.js"></script> <link

ListSetMap常見集合總結

排序 out java tlab vhdl for var 定義 word Java中的集合有三大類,List、Set、Map,都處於java.util包中,List、Set和Map都是接口,不能被實例化,它們的各自的實現類可以被實例化。List的實現類主要有ArrayLi

java集合中的向下轉型泛型

java中集合儲存字串時,集合的get(i)方法是獲取集合中的第i+1個元素,而這個元素是Object型別,而Object型別沒有length()方法,遍歷的時候如果直接.length()會報錯。如果想使用字串的方法,就必須把元素還原成字元(向下轉型)。 集合的遍歷。其實就是依次獲取集合

javaSE (二十六)map集合(兩種方法)輸入字元,計算字元出現次數(用map實現)HashMap巢狀HashMap

1、map集合遍歷: map集合沒有iterator方法,所以不能直接迭代 直接看下面的程式碼和第一行的註解(加了註釋之後變黑看不清了,所以前面沒加註釋) 1、map的第一種遍歷:遍歷map的所有值:method1() 獲取所有的鍵的集合:Set<K> keySet()

資料的三種方式之foreach for與Iterator

對資料的遍歷方式有三種:for迴圈遍歷、增強for迴圈遍歷、Iterator迭代器遍歷。這三種遍歷方式有他們自身使用的範圍。 增強for迴圈 增強for迴圈是JDK1.5版本後出來的一個高階for

java中ListSetMap集合的幾種方式小結和比較

一、集合類的通用遍歷方式, 用迭代器迭代:1.迭代遍歷whileIterator it = list.iterator();while(it.hasNext()){Object obj = it.next();System.out.println(it.next());}2.

二叉樹(先序中序後序)

廣度 nsh 直接 循環 ron color lan 通過 ogr 二叉樹的遍歷(遞歸與非遞歸) 遍歷:traversal  遞歸:recursion 棧----------回溯----------遞歸 棧和回溯有關 本文討論二叉樹的常見遍歷方式的代碼(Java)實現,包括

日常學習隨筆-用鏈表的形式實現普通二叉樹的新增查找(前後序)等基礎功能(側重源碼+說明)

新增 rabl super 例子 信息 count TP title 處理 一、二叉樹 1、二叉樹的概念 二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree),其次序不能任意顛倒。 2、性質

樹的非遞歸——前序中序後序

reorder 後序遍歷 color root targe left tor 調整 continue 樹的遞歸遍歷非常簡單,也是寫樹的遍歷時最常用的寫法。但是我發現自己對樹的非遞歸遍歷並不十分熟悉,所以把三種非遞歸遍歷都寫了一遍,以後看到這篇記錄博客也可以幫助自己好好回想熟

實戰c++中的vector系列--vector的(stl演算法vector迭代器(不要在迴圈中判斷不等於end())operator[])【轉】

(轉自:https://blog.csdn.net/wangshubo1989/article/details/50374914?utm_source=blogxgwz29) 遍歷一個vector容器有很多種方法,使用起來也是仁者見仁。 通過索引遍歷: for (i = 0; i<

jquery 父元素子元素兄弟元素

尋找父元素 1. parent()方法,只返回被選元素的直接父元素,只遍歷到上一級的父元素,返回的是一個元素。 2. parents()方法,返回被選元素的所有父元素,一直向上遍歷,直到文件的根元素為止,返回父元素的集合。 3. parentsUntil()方法,a.parentsUntil(

php資料夾檔案

php遍歷資料夾、檔案 <?php $path = '/'; foreach_file($path);//傳入需要遍歷的資料夾路徑 function foreach_file($path) { if(is_dir($path))//判斷目錄是否存在 {

java8快速實現分組過濾list轉map

public class TestEntity { private String c1; private String c2; public TestEntity(){} public TestEntity(String a,String b){ thi

JavaScript陣列:forforeachfor infor of$.each$().each的區別

一、for Javascript中的for迴圈,它用來遍歷陣列 var arr = [1,2,3,4] for(var i = 0 ; i&lt; arr.length ; i++){ console.log(arr[i]) } //1,2,3,4 九九乘法

矩陣的--按行按列蛇形

這裡有一個假設:  在影象處理等領域中,二維矩陣已經按照行的方式存放在了一維陣列mat中了。  矩陣的高記為height,寬記為width;  1.按行遍歷 for (int i = 0; i < height; ++i)

圖的(dfsbfs最短路最小生成樹拓撲排序

程式碼如下: #include <cstdio> #include <cmath> #include <vector> #include <cstring> #include <algorithm> using n

JAVA8新特性--集合之forEach

java中的集合有兩種形式Collection<E>,Map<K,V> Collection型別集合 在JAVA7中遍歷有一下幾種方式: List<String> list = Arrays.asList("aa

js函式forEach()map()every()和some()的區別例項

forEach()、map()、every()和some()的聯絡和區別 map() array.map(function(currentValue,currentIndex,array) {}