stream().map()

3122 단어 공사.
Stream은 Java 8의 가장 큰 특징으로서 집합 대상 기능의 강화, **.stream().map(...).collect(Collectors.toList())에서는 ***가 List 유형의 객체여야 합니다.
솔리드 클래스 Person 및 Dto 클래스 Person Dto는 다음과 같습니다.
public class Person {
    private String name;
    private Integer age;
    private String gender;
    private String hobby;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
}
public class PersonDto {
    private String name;
    private Integer age;
    private String gender;
    private List hobby;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public List getHobby() {
        return hobby;
    }

    public void setHobby(List hobby) {
        this.hobby = hobby;
    }
}

Person 클래스와 Person Dto 클래스 간의 상호 매핑을 위한 사용자 정의 매핑 함수
public class StreamMap {

    public void Test1(List person){
        List personDto = person.stream().map(StreamMap::convertPersonToPersonDto).collect(Collectors.toList());
        List personAfter = personDto.stream().map(StreamMap::convertPersonDtoToPerson).collect(Collectors.toList());
    }

    public static Person convertPersonDtoToPerson(PersonDto personDto){
        Person person = new Person();
        person.setName(personDto.getName());
        person.setAge(personDto.getAge());
        person.setGender(personDto.getGender());
        StringBuilder sb = new StringBuilder("[");
        for(int i = 0; i < personDto.getHobby().size(); i++){
            sb.append(personDto.getHobby().get(i)+",");
        }
        sb.append("]");
        person.setHobby(sb.toString());
        return person;
    }

    public static PersonDto convertPersonToPersonDto(Person person){
        PersonDto personDto = new PersonDto();
        personDto.setName(person.getName());
        personDto.setAge(person.getAge());
        personDto.setGender(person.getGender());
        List hobby = new ArrayList<>();
        String[] temp = person.getHobby().split(",");
        for(int i = 0; i < temp.length; i++){
            hobby.add(temp[i]);
        }
        personDto.setHobby(hobby);
        return personDto;
    }
}

참조 블로그

좋은 웹페이지 즐겨찾기