Страница: 1 | 2 | 3 | 4 | 5 |
Вопрос: AgentFire- обратись к дортору неадекват
Добавлено: 05.02.11 21:25
Автор вопроса: udn79
Ответы
Всего ответов: 75
Номер ответа: 31
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #31
Добавлено: 06.02.11 16:07
в vb.net можно же сравнивать строки с помощью == ? Есть ли разница с String.CompareTo?
Номер ответа: 32
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #32
Добавлено: 06.02.11 16:19
Ну так и используй
string a = "a";
a.CompareTo(""
a.CompareTo(String.Empty);
Зачем мне показывать, ккк компилятор отсекает мусор, чтобы не сравнивать 0=0, 1000 раз, или чему там у тебя равен ARRAY_SIZE
Номер ответа: 33
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #33
Добавлено: 06.02.11 16:25
в vb.net можно же сравнивать строки с помощью == ? Есть ли разница с String.CompareTo?
Можно. ТОлько там не == а =. Но по-моему результат не всегд будет такой же как в случае со String.CompareTo, потому что, насколько я помню, там до сих пор остались директивы Option Compare, и в зависимости от них сравнение будет идти с учетом регистра или без. CompareTo будет с учетом регистра всегда.
Если посмотришь рефлектором, увидишь что в VB сравнение строк (да и не только их) выполняется через helper-метод в Microsoft.VisualBasic.
Номер ответа: 34
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #34
Добавлено: 06.02.11 16:29
Winand, не сравнивай строки с помошью "==" - чесно скажу, .NET - хз, но в Java будут сравниваться указатели на объекты строк если ты юзаешь "==" и даже если строки "равны", "==" (DUH!) вернёт False.
.compareTo хорош если ты упорядочиваешь пузырьком (лол!) - так как возврощается целое число которое = 0 если объекты "равны" - работает не только для строк, кстати, положительное или отрицаетльное в зависимости если первый объект "больше" или "меньше" второго (понятно почему в кавычках?)
чтоб росто сравнить, юзай .equals (или .eqaualsTo, не помню)
Номер ответа: 35
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #35
Добавлено: 06.02.11 16:31
if (string.Empty == null)
Номер ответа: 36
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #36
Добавлено: 06.02.11 16:32
Говорят CompareTo быстрей работает,чем equals не проверял
Номер ответа: 37
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #37
Добавлено: 06.02.11 16:32
Вот, пожалуйста.
Результаты
Номер ответа: 38
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #38
Добавлено: 06.02.11 16:36
Например, чтоб убедиться что он ничего на самом деле не отсекает, а на самом деле там реально выполняется куча операций сравнения. В чем можно убедившись просто увеличив кол-во элементов или добавив туда немного мусора, что приведет к увеличению времени работы (надеюсь, не нужно объяснять почему)
Номер ответа: 39
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #39
Добавлено: 06.02.11 16:36
пузырек давно. уже никто не использует, тормозной алгоритм.
Номер ответа: 40
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #40
Добавлено: 06.02.11 16:39
Ты про общее время(что из замера можно было исключить) или время выполнение самого цикла без инициализации массава?
Номер ответа: 41
Автор ответа:
udn79
Вопросов: 2
Ответов: 95
Профиль | | #41
Добавлено: 06.02.11 16:41
Спасибо
что хоть код нормальный без ошибок стал выкладывать
Номер ответа: 42
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #42
Добавлено: 06.02.11 16:42
Смотри по коду какое вермя там считается
Номер ответа: 43
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #43
Добавлено: 06.02.11 16:44
Первый раз код пришлось выкладывать несколько раз потому что сначала считался за тег форматирования курсивом, затем в коде появились смайлики.
Номер ответа: 44
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #44
Добавлено: 06.02.11 16:48
Winand, не сравнивай строки с помошью "==" - чесно скажу, .NET - хз, но в Java будут сравниваться указатели на объекты строк если ты юзаешь "==" и даже если строки "равны", "==" (DUH!) вернёт False.
В дотнете этого нет. Оператор == в классе String переопределен и сначала идет сравнение по ссылке, если оно неудачное, то идет сравнение контента.
странно, у меня работает на шарпе
if (string.Empty == null)
string.Empty не равен null. И условие дает false. ты внезапно что-то напутал
Говорят CompareTo быстрей работает,чем equals не проверял
Хватти дезинформацией заниматься
Номер ответа: 45
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #45
Добавлено: 06.02.11 16:50
Artyom, да я не удевлюсь если и в Java имплементациях теперь так, просто как-то не посебе от использования == на объекты