Java8中list轉map方法總結

2021-08-22 18:16:44 字數 1137 閱讀 2339

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...