마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

진짜 이상한 일이 일어났어요...;

0 추천

제 Arraylist 두 개가 있습니다. 여기에는 노래 제목을 저장하구요 

ArrayList - A

Collections.sort(list, new Comparator<Data>() {
    @Override
    public int compare(Data o1, Data o2) {
        return o1.getAlbum().compareTo(o2.getAlbum()); //받아오는 값String
    }
});

ArrayList - B

Collections.sort(song_list_data); // String 형
Collections.sort(song_list_data, new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        return o1.compareTo(o2);
    }
}); // 이것도 시도해봄...

각각 데이터를 저장해준 후에 sort 시켜줬습니다. 정상적으로 잘 정리되어있어 보였는데 세부적으로 봤더니 약간 문제가 생겼어요.. 

저장된 곡 중에 제목이 "Paris" 와 "Paris Nights/New York Mornings" 두 곡 데이터가 뒤바뀌어있어요

제 생각에 정상적인 순서는 

Paris 

Paris Nights/New York Mornings 

이렇게 이고 ArrayList - A는 이 순서를 유지합니다.

하지만, ArrayList - B는 

Paris Nights/New York Mornings 

Paris 

이런 순서로 저장되버려요 ㅠㅠ 그래서 노래 제목이랑 실제 데이터가 달라서 다른 노래가 출력되요 ㅠ

다른 건 대부분 멀쩡한데 왜 이런 현상이 일어났는지 모르겠어요;;

 

알파고 (4,320 포인트) 님이 2018년 11월 16일 질문
A의 getAlbum()의 hashcode랑 B의 String의 hashcode를 다 찍어보세요. 공백이 더 들어갔거나하지 않았을까 싶습니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...