可能很多人特別是剛畢業的應屆生多少都學過一點java8的東西,知道有很多的新特性
但是在實用性上總感覺沒地方用。。之前在找實習之前也學過一些東西,但是很快就因為沒使用而忘光了
這幾天在項目中大量使用,才得以回想起來:
這次主要說groupingby,在項目中往往會因為查詢效率的問題而批量查詢某些DO,但是在批量查詢之后
是需要對查詢到的list進行歸類的,比如一個DO類person,里面包含年齡,性別等屬性,這時候需要根據不同的
年齡段對這個list進行過濾,按照以前的方法,只能不斷的新建list或者需要自己一個個手動過濾出年齡放在map當中,
但是在java8里面使用groupingby是很方便的,例如根據年齡過濾只需要
//根據id批量查詢list
List<Person> list = getByPersonId(List<String> ids)
Map<int,List<Person>> map = list.stream.collect(Collectors.groupingby(Person::getAge))
這樣得到的map就是根據年齡過濾好的map其中map的key是年齡,value是根據年齡過濾好的list