Map相关操作
List 转 Map<Bean里的某个属性A,Bean里的某个属性B>
List < SysUser > data = new ArrayList < > ( ) ;
data. add ( new SysUser ( ) . setUsername ( "张三" ) . setPhone ( "123456" ) ) ;
Map < String , String > map = data. stream ( )
. collect ( Collectors . toMap ( SysUser :: getUsername , SysUser :: getPhone ) ) ;
System . err. println ( map. get ( "张三" ) ) ;
ListA,ListB 转 Map<ListA某个属性/Bean,ListB某个属性/Bean>
导入jar包
< dependency>
< groupId> com. google. guava< / groupId>
< artifactId> guava< / artifactId>
< version> 20.0 < / version>
< / dependency>
List < User > listA = Lists . newArrayList ( new User ( ) . setUsername ( "张三" ) , new User ( ) . setUsername ( "李四" ) , new User ( ) . setUsername ( "王五" ) ) ;
List < User > listB = Lists . newArrayList ( new User ( ) . setPhone ( "111" ) , new User ( ) . setPhone ( "222" ) , new User ( ) . setPhone ( "333" ) ) ;
Map < String , String > collect = listA. stream ( ) . collect ( Collectors . toMap ( key -> key. getUsername ( ) , key -> listB. get ( listA. indexOf ( key) ) . getPhone ( ) ) ) ;
System . err. println ( collect) ;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
List < String > listA = Lists . newArrayList ( "a" , "b" , "c" ) ;
List < String > listB = Lists . newArrayList ( "1" , "2" , "3" ) ;
Map < String , String > rst = IntStream
. range ( 0 , listA. size ( ) )
. collect ( HashMap :: new , ( m, i) -> m. put ( listA. get ( i) , listB. get ( i) ) , ( m1, m2) -> { } ) ;
System . err. println ( rst) ;
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
List < User > listA = Lists . newArrayList ( new User ( ) . setUsername ( "张三" ) , new User ( ) . setUsername ( "李四" ) , new User ( ) . setUsername ( "王五" ) ) ;
List < User > listB = Lists . newArrayList ( new User ( ) . setPhone ( "111" ) , new User ( ) . setPhone ( "222" ) , new User ( ) . setPhone ( "333" ) ) ;
Map < String , String > rst = IntStream
. range ( 0 , listA. size ( ) )
. collect ( HashMap :: new , ( m, i) -> m. put ( listA. get ( i) . getUsername ( ) , listB. get ( i) . getPhone ( ) ) , ( m1, m2) -> {
} ) ;
System . err. println ( rst) ;
List相关操作
List根据bean里的某个属性去重转为List<某个属性类型>
List < SysUser > data = new ArrayList < > ( ) ;
data. add ( new SysUser ( ) . setUsername ( "张三" ) . setPhone ( "123456" ) ) ;
data. add ( new SysUser ( ) . setUsername ( "张三" ) . setPhone ( "123456" ) ) ;
List < String > usernameList= data. stream ( ) . map ( SysUser :: getUsername ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
System . err. println ( usernameList) ;