ugs1575   4년 전

첫번째 소스에서는 arraylist를 사용했고 두번째 소스에서는 array로 첫번째 소스를 바꿔보았습니다.

그런데 첫번째 소스는 틀리고, 두번째 소스는 맞았습니다.

왜 arraylist를 쓰면 틀리다고 나오는 건가요?

궁금합니다.

bupjae   4년 전

30번째 줄과 32번째 줄이 의도와 다르게 동작합니다.

 

list.get() 메소드의 반환값은 Long 이라고 하는 wrapped object 입니다.

object 에 대해서 == 연산자 또는 != 연산자를 사용하게 되면 object 내용물을 보는게 아니라 reference 가 동일한가 (즉, 같은 object 를 가리키는가) 를 판단합니다.

 

object 안에 들어있는 long 수치가 같은지 비교하려면 equals 메소드를 사용해야 합니다. 

bupjae   4년 전

d3768868-29b8-4388-8dd7-09d107b0d3dd

참고) 만약 언어에 특화된 IDE 를 사용하고 있다면 이런 문제를 가지고 있는 코드가 있다면 알려줍니다.
IDE가 이런 식의 메세지를 보여준다면 자세히 눈여겨 보면 큰 도움이 될 수 있습니다.
스크린샷은 제가 사용하고 있는 Java IDE 인 IntelliJ IDEA 입니다.

ugs1575   4년 전

헐 ㅜㅜㅜ 정말 감사합니다 ㅋㅋㅋㅋㅋㅋㅋㅋ궁금증이 시원하게 풀렸어요~~!!

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