본문 바로가기
IT/JAVA

Java stream()메서드, collect() 메서드 와 샘플코드

by 골든크랩 2022. 12. 26.
728x90
반응형

소스 아래 링크글을 읽어봐라...

===========================================================================

public HashMap<String, String> funcT4() {
        HashMap<String, String> map = new HashMap<>();

        List<Student> studentList = List.of(
                new Student("IronMan", 15, Gender.MALE),
                new Student("Hulk", 18, Gender.MALE),
                new Student("Captain", 17, Gender.MALE),
                new Student("Black widow", 14, Gender.FEMMALE)
        );

//        List<Student> males = new ArrayList<>();
//        for(Student student: studentList) {
//            if(Gender.MALE.equals(student.gender)) {
//                males.add(student);
//            }
//        }

        // 위와 동일한 코드를 stream() 메서드를 이용해서 MALE인 학생만 males에 저장
        // stream() 메서드는 Collection 이 가지고 있는 객체를 소스로 하는 Stream 클래스로 변환.
        // fiter() 메서드는 그 결과가 true이면 Stream 타입의 리스트에 해당 값을 임시로 보관.
        // collect() 메서드를 이용해서 list 형태로 변환.
        List<Student> males = studentList.stream()
                .filter(student -> Gender.MALE.equals(student.gender))
                .collect(Collectors.toList());




        for(Student student : males) {
            System.out.println(student);
        }


        map.put("function", "funcT1");
        map.put("result", "success");
        return map;

    }


    class Student {
        private final String name;
        private final int age;
        private final Gender gender;

        public Student(String name, int age, Gender gender) {
            this.name = name;
            this.age = age;
            this.gender = gender;
        }

        @Override
        public String toString() {
            return "Student{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    ", gender=" + gender +
                    "}";
        }
    }

    enum Gender {
        MALE, FEMMALE
    }

 

 

===========================================================================

 

 

https://koonsland.tistory.com/193

 

[Java] stream() 메소드를 이용해서 Collection 객체 가공하는 방법

Java를 사용해서 애플리케이션을 만들고, 또 웹을 만들다 보면 Java8 버전의 stream() 메서드를 많이 사용하게 됩니다. 여러 번의 반복된 작업을 굉장히 간략히 변경해서 사용하고, 또 객체들을 가공

koonsland.tistory.com

 

 

728x90
반응형

댓글