Kim-Gayoung / RPCExample_Java

https://github.com/kwanghoon/rpcexample
0 stars 1 forks source link

FunStore를 HashMap으로 구현하지 않고 ArrayList로 구현한 이유가 있나? 함수 호출할 때마다 매번 lookup을 할텐데. #4

Closed kwanghoon closed 6 years ago

kwanghoon commented 6 years ago

https://github.com/Kim-Gayoung/RPCExample_Java/blob/7c685e73d0a58caa9c2d280ec0f282d5a4d6cb1d/src/com/example/stacs/FunStore.java#L8 @Kim-Gayoung

Kim-Gayoung commented 6 years ago

@kwanghoon 순서를 유지해야 된다고 생각해서 ArrayList를 사용하게 되었습니다. HashMap을 쓰게 된다면 나중에 출력으로 FunStore를 전달해줬을 때 값이 뒤죽박죽 섞여있어 값을 찾아 haskell의 결과와 비교확인하기가 어려워질 것이라고 생각했습니다.

순서를 유지할 필요가 없다면 HashMap으로 수정하고, 순서를 유지해야 할 필요성이 생긴다면 LinkedHashMap으로 수정하겠습니다.

kwanghoon commented 6 years ago

@Kim-Gayoung HashMap을 사용하더라도 Haskell의 결과와 비교하기 쉬우려면 어떻게 해야하지? 불가능한 일인가?

Kim-Gayoung commented 6 years ago

@kwanghoon LinkedHashMap을 이용하여 순서를 유지시키는 것은 가능하지만, HashMap으로는 불가능한 것으로 알고 있습니다.

kwanghoon commented 6 years ago

@Kim-Gayoung 순서를 유지시키는 이유가 무엇이지? 실행할 때 필요한 것은 아니고 오직 Haskell 프로그램의 결과와 비교할때만 필요한 것이 아닌가? 그 목적으로 실행할 때도 느리게 동작하는 것이 바람직한지? 그리고 비교할때 Haskell 프로그램과 Java 프로그램을 둘 다 수정해서 Key 기준으로 sorting한 다음에 출력하도록 수정하면 비교하는 것도 가능하지 않을까?

Kim-Gayoung commented 6 years ago

@kwanghoon list나 map을 통해서 입력할 때의 순서를 유지해야 된다고만 생각했던 것 같습니다. key를 기준으로 sorting해서 출력하는 방향으로 수정하도록 하겠습니다.