밤과라임
3k
2020-06-05 16:46:21 작성 2020-06-05 16:50:55 수정됨
2
454

for문 냄새 질문입니다.


한 포문속에 두개의 메소드 실행하는 것과


두개로 나눠 각 메소드를 실행하는 것에서 속도차이나 권장하는 사항이 있는데 궁금합니다.

평소에는 한 포문에 같이 사용했는데

분기치는 부분이 있어서 조건에 따라 2 메소드 중 하나만 같거나, 2개 모두 같을수가 있고

리턴 값 타입이 달라

각 메소드를 분리하여 조건에 따라 loopOne, loopTwo를 한번 혹은 두번 호출하는 방법으로 설계하려 합니다.

동일 반복문을 상황에 따라 두번 처리해도 나쁜코드라 할 수 없을까요?



for( Member member : MemberList){

 methodOne(member);

 methodTwo(member);

}


private List<TypeOne> loopOne(List<Member> memberList){

List<TypeOne> oneList = new ArrayList<>();
for( Member member : memberList){

 oneList.add(methodOne(member));

  }

return oneList;

}

private List<TypeTwo> loopTwo(List<Member> memberList){

List<TypeTwo> twoList = new ArrayList<>();
for( Member member : memberList){

 twoList.add(methodTwo(member));

  }

return twoList;

}



와 같은 형식으로 바꿔서 사용하려합니다.


0
  • 답변 2

  • 민히
    2k
    2020-06-05 17:18:39

    상황따라서 다른데요

    같은 memberlist를 루프를 돌더라도 다른 목적이면 저는 분리하는 걸 선호합니다.

    2n인데 bigO로하면 n이므로 차이가 얼마나지 않는다고 생각해요.

    근데 만약에 성능이슈 발견되면 바로 수정하려고 하는 편입니당

  • 밤과라임
    3k
    2020-06-05 18:03:08

    @마니

    네 답변 감사합니다.

    size가 수천개정도로 큰 차이 없다고 생각해서 나눠서 작업했다가

    이후 공통적인부분도 있어

    공통 부분을 담는 객체를 만들고 한 메소드에 담는 것으로 수정하고있습니다.


  • 로그인을 하시면 답변을 등록할 수 있습니다.