inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코딩으로 학습하는 GoF의 디자인 패턴

이터레이터 패턴 1부 - 패턴 소개

강의에서는 잘 되는데...

238

seonjun Moon

작성한 질문수 35

0

예제 코드를 활용해서 공부를 하던 중 

잘 모르겟는게 보이는데요...

그건 바로 코드는 눈을 씻고 찾아봐도 동일한데

정렬이 절대 안되는 겁니다. 

 

무슨말이냐면...

 

_01_before의 Client.java에서 

 

코드는 물론 똑같이 작성했고요...

package me.whiteship.designpatterns._03_behavioral_patterns._16_iterator._01_before;

import java.util.Collections;
import java.util.Iterator;
import java.util.List;

public class Client {

public static void main(String[] args) {
Board board = new Board();
board.addPost("디자인 패턴 게임");
board.addPost("선생님, 저랑 디자인 패턴 하나 학습하시겠습니까?");
board.addPost("지금 이 자리에 계신 여러분들은 모두 디자인 패턴을 학습하고 계신 분들입니다.");

// TODO 들어간 순서대로 순회하기
List<Post> posts = board.getPosts();
for (int i = 0 ; i < posts.size() ; i++) {
Post post = posts.get(i);
System.out.println(post.getTitle());
}

// TODO 가장 최신 글 먼저 순회하기
Collections.sort(posts, (p1, p2) -> p2.getCreatedDateTime().compareTo(p1.getCreatedDateTime()));
for (int i = 0 ; i < posts.size() ; i++) {
Post post = posts.get(i);
System.out.println(post.getTitle());
}
}

}

실행하면 분명 Collection.sort로 정렬을 했는데

결과는 다음과 같습니다.

-+----------

디자인 패턴 게임

선생님, 저랑 디자인 패턴 하나 학습하시겠습니까?

지금 이 자리에 계신 여러분들은 모두 디자인 패턴을 학습하고 계신 분들입니다.

디자인 패턴 게임

선생님, 저랑 디자인 패턴 하나 학습하시겠습니까?

지금 이 자리에 계신 여러분들은- 모두 디자인 패턴을 학습하고 계신 분들입니다.

-------------------

 

당황스러운 것은 제가 이것을 같이 따라서 작성해보고 실행을 했는데 이러한 결과가 나와서 git에 올려두신 파일을 돌려봣는데 다음과 같은 결과가 나온 것입니다. 

 

제가 무엇을 놓치고 있는 걸까요?

 

java 디자인-패턴

답변 1

0

백기선

Board에는 코드가 어떻게 작성되어 있나요?

0

seonjun Moon

board.java

package me.whiteship.designpatterns._03_behavioral_patterns._16_iterator._01_before;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

public class Board {

List<Post> posts = new ArrayList<>();

public List<Post> getPosts() {
return posts;
}

public void setPosts(List<Post> posts) {
this.posts = posts;
}

public void addPost(String content) {
this.posts.add(new Post(content));
}
}

 

Post.java

package me.whiteship.designpatterns._03_behavioral_patterns._16_iterator._01_before;

import java.time.LocalDateTime;

public class Post {

private String title;

private LocalDateTime createdDateTime;

public Post(String title) {
this.title = title;
this.createdDateTime = LocalDateTime.now();
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public LocalDateTime getCreatedDateTime() {
return createdDateTime;
}

public void setCreatedDateTime(LocalDateTime createdDateTime) {
this.createdDateTime = createdDateTime;
}
}

 

컴퓨터는 거짓말을 하지 않는다지만 정말 저는 모르겟네요...

0

seonjun Moon

일부러 Thread를 걸어보니 컴퓨터 성능이 너무 좋아서... LocalDateTime 비교 자체가 불가능(?)햇는지 모르겟으나... 너무 찰나의 시간에 객체가 만들어지니 시간이 다 똑같다고 판단해서 정렬이 안되었던것 같습니다. 열심히 공부하겟습니다...,

많이 사용되는 패턴의 순서를 정한다면 어떤 순서일까요?

0

135

1

@Builder에 대해 사소한 질문

0

68

1

default 기능이 있는 interface와 추상클래스의 차이

0

63

1

실무 코드에 디자인 패턴 적용 시의 '기준'에 대해 조언을 얻고 싶습니다.

0

56

1

데코레이터 패턴, before 가 O(2^n) 인 이유

0

57

0

혹시 다음강의는 언제쯤..

0

356

1

volatile 사용 이유에 대해서 여쭤보고 싶습니다!

0

649

3

Spring Security 의 ProviderManager (AuthenticationManager) 도 옵저버 패턴을 사용하고 있다고 볼 수 있을까요?

0

402

2

싱글톤 패턴을 깨트리는 방법

0

562

1

코드에 약간 오타가 있는거 같습니다.

0

444

1

싱글톤 (Singleton) 패턴 구현 방법 3 - 2번 퀴즈에 대해 질문이 있습니다.

0

577

2

안녕하세요, 강의 순서 질문드립니다.

0

691

1

스프링 시큐리티 WebSecurityConfigurerAdapter deprecated 대체 코드

0

2436

1

팩토리메소드 = 추상팩토리?

2

926

1

중재자 패턴에 관하여~

0

515

1

undo 메소드 작업중에서

1

375

1

익명클래스로 객체 생성시 의문점

0

598

1

mediator패턴에서 객체끼리 순환참조는 어떻게 해결해야할까요

0

488

1

객체간에 this를 넘기는 부분에 관련해 질문이 있습니다..

1

374

1

전략 패턴과 상태 패턴에 관련해서 질문이 있습니다.

0

291

1

플라이웨이트 패턴 3부에서 HashMap 동시성 질문입니다.

0

264

1

enum 이 이른 초기화 방법이 아니라는 것은,

0

510

1

해당 코드가 C# 에선 접근 관련 컴파일 에러가 뜹니다.

0

439

1

설계관련 궁금증이 있습니다.

0

331

0