Задать вопрос
  • Как замаппить json в массив объектов?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Просто:
    let routes = await axios(...)
    .then((response: AxiosResponse<Route[]>) => response.data)
    .catch(console.log);
    Нет смысла гонять из пустого в порожнее.

    Только учитывай - все проверки типов и моделей typescript делает на этапе компиляции. На этапе исполнения никакого typescript не существует, потому когда приходит ответ с сервера нет никаких гарантий что он соответствует модели, и typescript не сможет никак отловить если это не так. Если нужны какие-то проверки - их надо писать самому руками или с помощью соответствующих либ.
    Ответ написан
    1 комментарий
  • Как узнать сколько времени займет поиск значения в тхт-списке?

    @deliro
    Как понять сколько времени будет занимать поиск заданного значения и каким способом эффективнее парсить файл?

    Что известно о файле кроме того, что он есть?

    Если значения в случайном порядке, то сложность будет всегда O(N) в худшем случае

    Если в нём значения отсортированы по какому-то признаку и есть явный разделитель (перевод каретки, например), то можно сделать аналог бинарного поиска (за O(logN)). Ну то есть, тыкаем в середину файла (seek(file_size_in_bytes / 2)), ищем вперёд ближайший разделитель (например, перевод каретки), читаем до следующего разделителя (получается строка), сравниваем ну и дальше как обычно. Но нужно учесть, что если это HDD, то движения головки диска не бесплатные и рандомный seek будет медленней последовательного, так что сравнивать "количество строк в секунду" в лоб не выйдет.

    Если ОЗУ позволяет, то можно вычитать весь файл туда и закинуть в структуру, которая больше подходит. Будь то дерево, сортированный массив или хэш-таблица. Если требуется только ответ на вопрос "есть?", то хэш-таблица будет самым производительным вариантом со сложностью O(1)

    Если ОЗУ не позволяет и большинство запросов заведомо будут "мимо", можно сделать фильтр Блума и сканировать файл только если он "возможно есть" и никогда не сканировать, если его "точно нет" (собственно, эти ответы и даёт фильтр Блума)

    Если ОЗУ не позволяет, но файл можно менять, то можно отсортировать его единоразово и дальше бинарный поиск

    Да можно даже содержимое файла в sqlite залить и решить все проблемы, пусть драйвер сам разбирается, что хранить в ОЗУ
    Ответ написан
    Комментировать
  • Как прописать тип для клонированного объекта, чьи значения были изменены рекурсивно?

    bingo347
    @bingo347 Куратор тега TypeScript
    Crazy on performance...
    Можно добавить такой тип:
    type RulersMap<R extends Record<string, unknown>> = {
      [K in keyof R]: R[K] extends number
        ? `${R[K]}px`
        : R[K] extends Record<string, unknown>
          ? RulersMap<R[K]>
          : R[K];
    };
    и привести результат к типу RulersMap<typeof rulers>
    Проблема в том, что у либы map-obj не очень то хорошо типы для deep варианта написаны, хотя можно свои написать при желании.
    Ответ написан
    Комментировать
  • Как сохранить HashMap в файл?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Сериализация и десериализация в Java

    Можно еще сериализовать в json - получится строка, а ее уже сохранить в файл
    Ответ написан
    Комментировать
  • Что за параметры в spltе?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Это регулярное выражение.
    Ответ написан
    Комментировать
  • В какой области памяти хранятся локальные переменные?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Объекты в куче.
    Примитивы и ссылки - в стэке.
    Ответ написан
    4 комментария
  • В какой области памяти хранятся локальные переменные?

    Jacen11
    @Jacen11
    буквально самая первая ссылка. В яндексе забанили?
    61d4a05018dbc595444549.png
    Ответ написан
    Комментировать
  • Почему Dependecy Injection не нарушает GRASP шаблон Creator?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Потому что не нарушает... Фабрика/агрегат создает нужный инстанс, если его ответственность в этом

    DI — это про зависимости, то есть создаем и передаем зависимости снаружи, а не внутри... Creator создает не свою зависимость, а просто на выход некоторый объект... сам с этим объектом не работает
    Ответ написан
    Комментировать
  • Почему поля касса называются интерфейсом?

    Ну вот такой вот у нас, кожаных мешков, нелогичный язык.
    Интерфейс - это не только то что мы объявляем ключевым словом "interface", но и совокупность из всех публичных членов класса - тн "интерфейс взаимодейсвия"
    Ответ написан
    Комментировать
  • Из какой коллекции можно быстро удалять элемент, но к ней применим бин. поиск?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Написать своё сбалансированное дерево. Удаление и upperBound будут за логарифм
    Ответ написан
    Комментировать
  • Как происходит связывание с предыдущим узлом в LinkedStack?

    Vamp
    @Vamp
    1. Просто чтобы продемонстрировать использование паттерна sentinel value. В данном конкретном примере можно было обойтись просто null.

    2. В присваивании сначала выполняется правая часть - создаётся объект Node, которому в аргументы конструктора передается item и текущее значение, хранящееся в переменной top. После этого переменной top присваивается ссылка на этот новый объект.

    Это более короткий вариант следующего кода:
    Node<T> oldTop = top;
    top = new Node<T>(item, oldTop);
    Ответ написан
    4 комментария
  • Как правильно организовать хранение истории изменений записей?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Простой способ - отказаться от update и delete.
    Только insert.
    Надо будет еще добавить колонку с датой, в которую проставлять текущее время автоматически.
    Ответ написан
    7 комментариев
  • Почему GlassFish 6.2.3 не видит javax.faces.webapp.FacesServlet?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
    Означает, что jvm не может найти нужный класс в classpath
    Попробуйте его туда положить.
    Ответ написан
    2 комментария
  • Как запустить команду используя видеокарту на Java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Никак.
    Ответ написан
    Комментировать
  • Что нужно для установки условий для запуска сторонних проложений?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Идешь в плей и смотришь "родительский контроль" . Выбираешь с самым худшим рейтингом. Идеально с 1 звездой.
    Почему так. Детки минусят реально работающие. Почитайте сами отзывы.

    Например набор разрешений у mcafee

    Development tools
    test access to protected storage
    Your personal information
    read your Web bookmarks and history, write web bookmarks and history
    Your location
    approximate (network-based) location, precise (GPS) location
    Network communication
    view network connections, view Wi-Fi connections, full network access, Google Play billing service, Google Play license check, receive data from Internet
    Storage
    modify or delete the contents of your USB storage
    Phone calls
    read phone status and identity
    System tools
    retrieve running apps, run at startup, draw over other apps, prevent phone from sleeping, toggle sync on and off
    Extra
    android.permission.ACCESS_BACKGROUND_LOCATION, android.permission.FOREGROUND_SERVICE, android.permission.QUERY_ALL_PACKAGES, android.permission.READ_APP_BADGE, android.permission.READ_PHONE_NUMBERS, com.anddoes.launcher.permission.UPDATE_COUNT, com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE, com.htc.launcher.permission.READ_SETTINGS, com.htc.launcher.permission.UPDATE_SHORTCUT, com.huawei.android.launcher.permission.CHANGE_BADGE, com.huawei.android.launcher.permission.READ_SETTINGS, com.huawei.android.launcher.permission.WRITE_SETTINGS, com.majeur.launcher.permission.UPDATE_BADGE, com.mcafee.safefamily.core.permission.USAGE, Can receive cloud messages, com.oppo.launcher.permission.READ_SETTINGS, com.oppo.launcher.permission.WRITE_SETTINGS, com.sec.android.provider.badge.permission.READ, com.sec.android.provider.badge.permission.WRITE, com.sonyericsson.home.permission.BROADCAST_BADGE, com.sonymobile.home.permission.PROVIDER_INSERT_BADGE, me.everything.badger.permission.BADGE_COUNT_READ, me.everything.badger.permission.BADGE_COUNT_WRITE
    Ответ написан
    1 комментарий
  • Почему сравнение двух строк не работает в цикле for?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Строки в java сравниваются методом .equals()
    Ответ написан
    Комментировать
  • Какую базу данных выбрать для Андроид приложения?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Если на устройство, то нет альтернатив SQLite. Если на бэкенде, то любую.
    Ответ написан
    Комментировать
  • Почему так работают битовые сдвиги в Java?

    Vamp
    @Vamp
    Битовый сдвиг для типа long не может превышать 63. Поэтому сдвиг 1L << 64 будет преобразован jvm в 1L << (64 & 0x3f), в результате чего получается 1L << 0 и поэтому у вас значение не изменяется.

    Вашу задачу решает сдвиг 1L << 63. Единица изначально находится на 1 позиции (позиции нумеруются справа налево) и сдвигается влево на 63 позиции. Вы получаете желаемую единицу на 64 позиции с 63 нулями позади.

    Что касается 128L << 56, то здесь всё корректно и логично. Единица находится на 8 позции и имеет 7 нулей сзади. Сдвигая её на 56 позиций, у вас получается желаемый результат - единица на 64 позиции (8 + 56) и 63 нуля позади (7 нулей + 56).
    Ответ написан
    Комментировать
  • Как создать кнопку в WordPress, при нажатии которой копируется текст в буфер обмена?

    @xlo240
    <script src="http://sitename/wp-content/themes/zskills/js/clipboard.min.js"></script>
    <button class="copy_link">Скопировать ссылку</button>

    var url = document.location.href;
    	new Clipboard('.copy_link', {text: function(){ return url;}});
    	$('.copy_link').click(function(){alert('Cсылка успешно скопирована в буфер обмена.');});
    Ответ написан
    Комментировать
  • Почему в этом коде используется Override(из туториала Spring)?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Spring
    Седой и строгий
    Обожемой, это же основы Java, рано вам ещё в Spring лезть.

    Почему пишется аннотация к ним, если класс только один, у него нет родительского класса и похожих методов?

    Все классы неявно наследуют Object, в котором и определены интересующие вас методы.

    И почему пишется "Employee() {}" до создания метода c этим именем?

    Во-первых, это не метод, а конструктор. Во-вторых, у сущностей должен быть конструктор без параметров, иначе ORM не сможет их создавать.
    Ответ написан
    Комментировать