indexOf contains 등이 작동을 이상하게 합니다.

조회수 445회
//hm.get("name"): "1_01.wav"
//sound_list: ["1_00.wav","1_01.wav"]
//값은 위와 같습니다.

Log.d("asdf", String.valueOf(sound_list.contains(hm.get("name"))));  //-1
Log.d("asdf", String.valueOf(sound_list.contains("1_01.wav")));   //2

Log.d("asdf", String.valueOf(sound_list.contains(hm.get("name"))));  //false
Log.d("asdf", String.valueOf(sound_list.contains("1_01.wav")));   //true

ArrayList 에서 특정 값의 위치를 가져오려 합니다. 특정 값은 HashMap에서 get으로 뽑아 왔습니다.

그런데 위 코드 첫번째 케이스 처럼 contains에 넣을경우 false를, indexOf에 넣을경우 -1을 반환합니다.

그러나 위 코드의 두번째 케이스처럼 contains나 indexOf의 입력 값에 hm.get("name")과 같은 값을 직접 넣으면 정상적으로 작동합니다.

이건 도대체 무슨 경우죠???

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)