1.利用collectors.tomap方法進行轉換
public
map> getidnamemap(list
accounts)
其中第乙個引數就是可以,第二個引數就是value的值。
2.收集物件實體本身
- 在開發過程中我們也需要有時候對自己的list中的實體按照其中的乙個字段進行分組(比如 id ->list),這時候要設定map的value值是實體本身。
public
map getidaccountmap(list
accounts)
account -> account是乙個返回本身的lambda表示式,其實還可以使用function介面中的乙個預設方法 function.identity(),這個方法返回自身物件,更加簡潔
重複key的情況。
public mapgetnameaccountmap(listaccounts)
用groupingby 或者 partitioningby進行分組
map> persongroups = stream.generate(new personsupplier()).
limit(100).
collect(collectors.groupingby(person::getage));
iterator it = persongroups.entryset().iterator();
while (it.hasnext())
map> children = stream.generate(new personsupplier()).
limit(100).
collect(collectors.partitioningby(p -> p.getage() < 18));
system.out
.println("children number: " + children.get(true).size());
system.out
.println("adult number: " + children.get(false).size());
Java8增強的Map集合
map用於儲存具有對映關係的資料,因為map集合中儲存著兩組值,一組值用於儲存map裡的key,另外一組值用於儲存map裡的value,key和value都可以是任何引用型別的資料。map裡的key不允許重複,即同乙個map物件的任何兩個key通過equals方法比較總是返回false。key和va...
java 8 方法引用
如果lambda 表示式的 塊只有一行 程式就可以省略表示式 塊的花括號,不僅如此,如果只有一行 還可以使用方法的引用和構造器的引用 下面為四種引用的例項 public class function functionalinte ce inte ce mytest3 functionalinte c...
java8方法引用
方法引用為lambda的另外一種表現形式,其為 若lambda體的內容中已有方法實現了,我們可以對其使用 方法有引用 其有三種形式 1 物件 例項 方法名 2 類 靜態方法名 3 類例項方法名 第一種形式 例項 方法名 test public void test1 第二種形式,類 靜態方法 test...