0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 141
|
||||||
1 | ||||||
Сравнение строк ==19.07.2016, 16:32. Показов 607. Ответов 8
Метки нет (Все метки)
Братья, добрый день, у меня большое горе, я в очередной раз запутался. Вообще я начал разбираться с методами hashCode() и equals(). Не скажу, что прям разобрался, но на пути к этому, но вопрос то имеет слабое отношение к этому, так вот, я так понял, что метод equals() для класса String был Override. (Верное ли это утверждение??) . Второе, помня о том, что для сравнения строк по значению их необходимо сравнивать методом equals(), я решил проверить это дело, сравнив две строки == и конечно же был уверен, что получу false, братья, подскажите, почему я получаю true?
0
|
19.07.2016, 16:32 | |
Ответы с готовыми решениями:
8
Сравнение строк Сравнение строк Сравнение строк Сравнение строк |
19.07.2016, 16:42 | 2 |
Почему был? Он и сейчас есть .
Вы сравнили две строки не по значение, а по ссылке. И, по счастливой случайности, эти две ссылки указывают на одну и ту же строку.
1
|
614 / 488 / 175
Регистрация: 02.03.2010
Сообщений: 1,238
|
|
19.07.2016, 16:44 | 3 |
Внимательнее читаем литературку. Компилятор разработан со многими оптимизациями, одной из которых является приведенный пример. Данные оптимизации сделаны не просто так.
Есть, например похожая оптимизация с Integer'ами, сравнив два разных Integer (не int, а именно Integer) объекта с одинаковыми значениями, например 127, получим true, сравним так же два разных Integer'а со значениями 128 - получим false. Уделяем больше внимания особенностям компилятора, если это так вам интересно.
1
|
0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 141
|
||||||
19.07.2016, 16:52 [ТС] | 4 | |||||
Добавлено через 3 минуты
да, спасибо большое, ок, как тогда можно объяснить, что в случае:
подскажите пожалуйста, почем в этом случае не происходит эм.. отпимизация компилятора?
0
|
0 / 0 / 1
Регистрация: 05.02.2014
Сообщений: 141
|
|
20.07.2016, 13:34 [ТС] | 6 |
братья, еще у меня к Вам вопрос такой будет, верным ли будет утверждение, что... для поиска вхождения элемента (объекта) в ArrayList (ну в моем случае методом contains() необходимо Override метод equals т.к.
"Returns true if this list contains the specified element. More formally, returns true if and only if this list contains at least one element e such that (o==null ? e==null : o.equals(e))." т.е. у меня есть ArrayList объектов, для поиска я создаю какой то объект и проверяю есть ли такой в массиве,
0
|
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
20.07.2016, 14:22 | 7 |
1
|
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
|
|
03.08.2016, 00:48 | 9 |
0
|
03.08.2016, 00:48 | |
03.08.2016, 00:48 | |
Помогаю со студенческими работами здесь
9
Сравнение строк в 2х файлах Сравнение двух строк Сравнение двух строк Знатоки ЖАБы, сравнение строк Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |