“Java8集合转映射”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“1”的新页面)
 
 
(未显示同一用户的1个中间版本)
第1行: 第1行:
1
+
<syntaxhighlight lang="java">
 +
import io.github.jihch.bean.Customer;
 +
import org.junit.Test;
 +
 
 +
import java.lang.reflect.Field;
 +
import java.util.Arrays;
 +
import java.util.Map;
 +
import java.util.function.Function;
 +
import java.util.stream.Collectors;
 +
 
 +
/**
 +
* 数组转映射
 +
*/
 +
public class ArrayToMap {
 +
 
 +
    /**
 +
    * 写法1
 +
    */
 +
    @Test
 +
    public void test1() {
 +
        Map<String, Field> m = Arrays.asList(Customer.class.getDeclaredFields()).stream().collect(Collectors.toMap(Field::getName, Function.identity()));
 +
        m.forEach((k, v) -> System.out.printf("k:%s, v:%s\n", k, v));
 +
    }
 +
 
 +
    @Test
 +
    public void test2(){
 +
        Map<String, Field> m = Arrays.asList(Customer.class.getDeclaredFields()).stream().collect(Collectors.toMap(t->t.getName(), t->t));
 +
        m.forEach((k, v) -> System.out.printf("k:%s, v:%s\n", k, v));
 +
    }
 +
 
 +
}
 +
</syntaxhighlight><syntaxhighlight lang="console">
 +
k:name, v:private java.lang.String io.github.jihch.bean.Customer.name
 +
k:birth, v:private java.sql.Date io.github.jihch.bean.Customer.birth
 +
k:id, v:private int io.github.jihch.bean.Customer.id
 +
k:email, v:private java.lang.String io.github.jihch.bean.Customer.email
 +
</syntaxhighlight>
 +
 
 +
 
 +
https://github.com/jihch/java8/blob/main/src/main/java/io/github/jihch/ArrayToMap.java

2022年12月20日 (二) 19:43的最新版本

import io.github.jihch.bean.Customer;
import org.junit.Test;

import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
 * 数组转映射
 */
public class ArrayToMap {

    /**
     * 写法1
     */
    @Test
    public void test1() {
        Map<String, Field> m = Arrays.asList(Customer.class.getDeclaredFields()).stream().collect(Collectors.toMap(Field::getName, Function.identity()));
        m.forEach((k, v) -> System.out.printf("k:%s, v:%s\n", k, v));
    }

    @Test
    public void test2(){
        Map<String, Field> m = Arrays.asList(Customer.class.getDeclaredFields()).stream().collect(Collectors.toMap(t->t.getName(), t->t));
        m.forEach((k, v) -> System.out.printf("k:%s, v:%s\n", k, v));
    }

}
k:name, v:private java.lang.String io.github.jihch.bean.Customer.name
k:birth, v:private java.sql.Date io.github.jihch.bean.Customer.birth
k:id, v:private int io.github.jihch.bean.Customer.id
k:email, v:private java.lang.String io.github.jihch.bean.Customer.email


https://github.com/jihch/java8/blob/main/src/main/java/io/github/jihch/ArrayToMap.java