list 转 map 要求key必须唯一
package com.wy.my_test_demo;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author wySama
* @date 2019-09-06 10:21
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class Test {
List<BizArtistOther> bizArtistOtherList = Arrays.asList(
new BizArtistOther( "1001", "123123", "1" ),
new BizArtistOther( "1002", "123123", "6" ),
new BizArtistOther( "1003", "123123", "5" ),
new BizArtistOther( "1004", "123123", "4" )
);
/**
* key根据某个字段排序
*/
@org.junit.Test
public void test1() {
Map<String, List<BizArtistOther>> bizArtistOtherMap = bizArtistOtherList.stream().collect( Collectors.groupingBy( BizArtistOther::getOtherType ) );
bizArtistOtherMap.forEach( (key, value) -> {
System.out.println( "key: " + key + " value: " + value.toString() );
} );
}
@org.junit.Test
public void test2() {
Map<String, BizArtistOther> map = bizArtistOtherList.stream().collect(Collectors.toMap(BizArtistOther::getOtherType, bizArtistOther -> bizArtistOther));
// 遍历打印结果
map.forEach((key, value) -> {
System.out.println("key: " + key + " value: " + value);
});
}
/**
* list 转 map 指定 key和 value
*/
@org.junit.Test
public void test3() {
Map<String, String> map = bizArtistOtherList.stream().collect( Collectors.toMap( BizArtistOther::getOtherId, BizArtistOther::getOtherType ) );
map.forEach( (key, value) -> {
System.out.println( "key: " + key + " value: " + value );
} );
}
}