А у вас в проекте тоже есть массив с массивами? / it-юмор :: смешные картинки (фото приколы) :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)
Подержи мое пиво.
Я видел мапу в которой ключ был стринговое название числа, типа key '10' value 10 и когда я спросил НАААААХУУУУЯЯЯ
челик мне ответил всмысле нахуя? Что бы по стрингу его значение вернуть
Ну может так быстрее чем каждый раз создавать объект toInt()? Может у него это типа кэша, аля
IntegerCache.valueOf(String number); А внутри этого класса HashMap проинициализированный от -n до + n. Так явно быстрее чем вызывать дефолтный метод приведения к числу из строки. К примеру вот как реализовано у Oracle в JDK, и это время.
public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
Я ничего не понимаю в Java, но мне показалось необычным утверждение, что поиск значения в HashMap явно быстрее, чем распарсить строку в число.
Казалось бы, преобразование строки в int должно выполняться за один проход по её содержимому - т.е. примерно за то же время, что и вычисление её хеша, с той разницей, что при этом мы можем сразу вернуть результат, а не должны ещё обращаться к памяти?
Даже если считать, что мы не можем вызвать упомянутый в вашем комментарии parseInt напрямую, я всё равно пока не вижу, каким образом использование HashMap может дать ускорение...
P.S. Может быть я чего-то не учёл, но на таком коде HashMap у меня показывает результаты чуть хуже, чем Integer.valueOf, даже без учёта времени на её инициализацию
https://pastebin.com/dXypxDPR
в этом проблема джавистов. Сначала берем среду, в которой работает медленно, а потом начинаем придумывать велосипеды как это ускорить наступая на все возможные грабли.
что в яве работает медленно, уёба? тот же самый вызов нативного метода, что и везде? или примерно те же самые хэшмапы, что и везде?
разберись сначала, потом выёбывайся.
мапы по строке, кстати, в явы быстрее, чем много где за счёт заранее посчитанного и сохранённого хэша.
проблема джайвистов в том что они искренне верят в то что java работает быстрей или хотя-бы на уровне С++, а когда посылаешь их нахуй за то что они пишут просто конченную чушь, ещё удивляются что нет конструктивного диалога.
Вполне обыденная ситуация, как и двумерный массив (который и является массивом массивов). Внутри мапы обычно простой одномерный массив с целочисленными индексами.
Сейчас когда благодаря функциональщине мапа любой вложенности создается одной строкой (иногда очень длинной) это не экзотика. Сам 4 раза вкладывал и ничего не отсохло.
Я видел мапу в которой ключ был стринговое название числа, типа key '10' value 10 и когда я спросил НАААААХУУУУЯЯЯ
челик мне ответил всмысле нахуя? Что бы по стрингу его значение вернуть
IntegerCache.valueOf(String number); А внутри этого класса HashMap проинициализированный от -n до + n. Так явно быстрее чем вызывать дефолтный метод приведения к числу из строки. К примеру вот как реализовано у Oracle в JDK, и это время.
public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
Казалось бы, преобразование строки в int должно выполняться за один проход по её содержимому - т.е. примерно за то же время, что и вычисление её хеша, с той разницей, что при этом мы можем сразу вернуть результат, а не должны ещё обращаться к памяти?
Даже если считать, что мы не можем вызвать упомянутый в вашем комментарии parseInt напрямую, я всё равно пока не вижу, каким образом использование HashMap может дать ускорение...
P.S. Может быть я чего-то не учёл, но на таком коде HashMap у меня показывает результаты чуть хуже, чем Integer.valueOf, даже без учёта времени на её инициализацию
https://pastebin.com/dXypxDPR
разберись сначала, потом выёбывайся.
мапы по строке, кстати, в явы быстрее, чем много где за счёт заранее посчитанного и сохранённого хэша.
тоесть я хотел уточнить правда ли что мапы на плюсах дебилы писали?
[
'' => 'some error message',
...
];
Да, это не опечатка, в качестве ключа ассоциативного массива используется пустая строка.
Плак....
Легким движением руки С превращается в почти что С++.
Иногда двумерный массив - это одномерный массив размера m*n для улучшения производительности.
HPC mode off
Проблема не в структуре а в её применении
Все же ясно.
и в душе не знаешь что такое массивы и нахер они нужны