frtt0608   3년 전

1. 처음에 setArcher함수로 궁수 배치합니다.

2. defenseCastle로 성을 지키면서

3. attackEnemy함수에 que를 사용해 적을 잡는데.

4. map을 복사한 copy_map에서 적을 잡으면 killEnemySet이라는 set에 저장하는데 이상하게 중복이 허용되면서 저장이 됩니다..

혹시 사용자 정의 클래스로 만든 객체라서 중복으로 판단하지 않는건지...

추가로 system.arraycopy로 map을 복사해서 사용할려했는데 map이 자꾸 업데이트되서 결국 이중 for문으로 해결했습니다..

제가 알기론 system.arraycopy가 deepcopy로 배열 복사하는 걸로 알고있는데 상황마다 틀린건가요..??


bupjae   3년 전

java 에서 hash 기반의 컬렉션을 이용하려면 컬렉션에 넣으려는 원소 (여기서는 Node) 의 equals() 와 hashCode() 가 올바르게 재정의되어야 합니다.

  

equals() 는 다음 조건을 만족해야 합니다.

* a.equals(a) == true

* a.equals(b) == b.equals(a)

* a.equals(b) == true 이고 b.equals(c) == true 이면 a.equals(c) == true

  

hashCode() 는 다음 조건을 만족해야 합니다.

* a.equals(b) == true 이면 a.hashCode() == b.hashCode()

* a.equals(b) == false 일 때 a.hashCode() != b.hashCode() 를 만족하면 컬렉션 성능이 좋아집니다.

frtt0608   3년 전

아... hashCode를 생각못했네요...ㅠㅠ
감사합니다!!

댓글을 작성하려면 로그인해야 합니다.