Spring Boot 프로젝트
Spring Boot 프로젝트 (11.04) - CRUD, 람다식
yeosang0508
2024. 11. 5. 00:16
환경세팅
-> Gradle - Groovy
내가 작성한 코드 (list)
for (Todo todo : todos) {
System.out.print(todo.getId());
System.out.print(" / ");
System.out.println(todo.getContent());
}
Iterator -> java 컬렉션 프레임워크에서 컬렉션 내의 요소들을 순차적으로 접근되는 인터페이스
Iterator는 List, set, Map과 같은 컬렉션에서 요소들을 반복(iterate)하여 순회하는 데 사용
바뀐코드
todos.forEach(todo -> System.out.printf("%d / %s \n", todo.getId(), todo.getContent()));
내가 작성한 코드 (del)
for (Todo todo : todos) {
if (todo.getId() == id) {
todos.remove(todo);
isFound = true;
System.out.println(id + "번 할일이 삭제되었습니다.");
break;
}
}
바뀐코드
boolean isRemoved = todos.removeIf(todo -> todo.getId() == id);
removeIf는 리스트의 요소를 순회하며 주어진 조건 todo.getId() == id을 만족하는 요소를 찾아서 제거
조건을 만족하는 요소가 하나라도 제거되면 true를 반환, 그렇지 않으면 false를 반환 / true인 것은 전부 다 지움
자바 람다식 -> 메소드를 간결한 함수 식으로 표현
내가 작성한 코드 (modify)
for (Todo todo : todos) {
if (todo.getId() == id) {
System.out.println("기존 할일 : " + todo.getContent());
System.out.print("새 할일 : ");
String content = sc.nextLine();
todo.setContent(content);
System.out.println(id + "번 할일이 수정되었습니다.");
isFound = true;
break;
}
}
바뀐코드
Todo foundTodo = todos.stream()
.filter(t -> t.getId() == id)
.findFirst()
.orElse(null);
- 하나의 메서드는 하나의 일만
- 하나의 클래스는 한가지 주제만
-> 하나의 메서드가 너무 크면 별로야
-> 하나의 클래스가 너무 크면 별로야
-> 여러개의 작은 클래스와 작은 메서드로 나눠야함
=============> 리팩토링