Size: a a a

2020 June 25

N🌌

Nazarii 🌌 in learn.java
а еще, хочу поплакаться на модулярность в java. С многими либами работать невозможно, боль и слёзы :(
источник

QH

Quantum Harmonizer in learn.java
Nazarii 🌌
получилась интересная ситауция.
Гипотетически:
Есть класс human. У хюмана есть возраст. Есть список, где сортируются хюманы по возрасту.
Для сортировки просто использовал TreeSet,
потому-что все сходится: дубликатов быть не может, а сортировать-то нужно.
На equals() оверрайд:
Допустим, что хюманы равны друг-другу, если у них одинаковое им‘я. Тогда - дубликат.
В итоге, если у людей получался одинаковый возраст (к примеру, обоим по 20), то compareTo возвращает 0, что для TreeSet означает, что они равны.
Да, именно equal, как у equals.
Мне пришлось пометить реализацию compareTo, как несовместимую с equals.
Как решить - еще не придумал.
Кто сталкивался, или у кого есть какие-то идеи, как бы вы решили это дело?
Лучше compare сделать консистентным с equals, а с TreeSet использовать внешний компаратор.
источник

QH

Quantum Harmonizer in learn.java
Nazarii 🌌
а еще, хочу поплакаться на модулярность в java. С многими либами работать невозможно, боль и слёзы :(
А что там?
источник

N🌌

Nazarii 🌌 in learn.java
Quantum Harmonizer
Лучше compare сделать консистентным с equals, а с TreeSet использовать внешний компаратор.
Хорошо, попробую
источник

N🌌

Nazarii 🌌 in learn.java
Спасибо
источник

N🌌

Nazarii 🌌 in learn.java
Quantum Harmonizer
А что там?
Я сейчас делаю маленький десктопный планер. Использую либу для примитивных анимаций javafx, и, соответственно, сам проект тоже на javafx.
И либа, и мой код используют одинаковые модули javafx. На что компилятор злится. В таком случае, выход - брать исходник либы и добавлять в свой код. Бредово и грязно. Иначе - никак.
Другой пример: автоматические модули. Если таков есть, то jlink, которым я собираю свое jre, злится и просит их не использовать.
Приходится вручную "вшивать" модулярность в либу, а тогда использовать. Если, конечно, не выскочит такая проблема, как я описал выше.
источник

N🌌

Nazarii 🌌 in learn.java
источник

N🌌

Nazarii 🌌 in learn.java
вот здесь описали
источник

N🌌

Nazarii 🌌 in learn.java
неделю дрался с этим.
А работаю с модулярностью, потому что очень хочеться, чтобы было свое jre. Это позволяет мне запускать билд и на Линуксе, и на Винде
источник

N🌌

Nazarii 🌌 in learn.java
Сомнительное удовольствие, честно говоря)
источник

N🌌

Nazarii 🌌 in learn.java
Модулярность эта
источник

N🌌

Nazarii 🌌 in learn.java
Может, если софт одной командой пишется, то это полезно
источник

N🌌

Nazarii 🌌 in learn.java
Ну а с open-source больно как-то
источник

N🌌

Nazarii 🌌 in learn.java
Quantum Harmonizer
Лучше compare сделать консистентным с equals, а с TreeSet использовать внешний компаратор.
Кстати, да. Действительно. Почему-то в голову совсем не пришло :)
источник

T

Tagir in learn.java
Gukov Viktor
А если мы делаем предложение из индекса итераций типа
for (int i = 0; i < 100000; i++) {
           stringBuilder.append(i);
           stringBuilder.append(" ");
           test = stringBuilder.toString();
       }


То у нас же совпадения хэшей у слов будут минимальные, вырождения не должно быть. Просто дорогие put?
Надо для каждой строки посчитать хэшкод. Он не даётся тебе волшебным образом бесплатно. Надо выделить HashMap.Entry, заполнить его, записать в хэш-таблицу. Записи референсов в кучу - это ещё обновление кардмарк тейбл. Кроме того, регулярный рехэшинг - перевыделение таблицы. Но я вангую, что основное время уходит на хэшкоды строк. Проверь через .mapToInt(String::hashCode).sum() - подсчёт хэшкодов, но без мэпки
источник

L

Linnik 🎄 in learn.java
Привет всем.
Вот есть такая задача. При вводе цифр с помощью сканнера, нужно чтобы мне в ответ генерировало буквы заглавные, строчные и цифры. Я всё это сделал, но остается реализовать "N", то есть пароль у меня должен быть из 10 чисел минимум, и если я ввожу их меньше, то программа должна срандомить недостающие символы.
Может ли кто-то натолкнуть на мысль или подсказать в каком направлении двигаться? Пытаюсь решить уже второй день, но не могу придумать, как реализовать вот этот последний ввод "10"
источник

D

DarkPerl in learn.java
Linnik 🎄
Привет всем.
Вот есть такая задача. При вводе цифр с помощью сканнера, нужно чтобы мне в ответ генерировало буквы заглавные, строчные и цифры. Я всё это сделал, но остается реализовать "N", то есть пароль у меня должен быть из 10 чисел минимум, и если я ввожу их меньше, то программа должна срандомить недостающие символы.
Может ли кто-то натолкнуть на мысль или подсказать в каком направлении двигаться? Пытаюсь решить уже второй день, но не могу придумать, как реализовать вот этот последний ввод "10"
А в чем проблема посчитать длину получившейся строки?
И если она короче заданного числа, то сгенерить недостающую часть?
источник

L

Linnik 🎄 in learn.java
DarkPerl
А в чем проблема посчитать длину получившейся строки?
И если она короче заданного числа, то сгенерить недостающую часть?
У меня это всё числа, а не строки. Спасибо, сейчас буду пробовать менять.
источник

D

DarkPerl in learn.java
Linnik 🎄
У меня это всё числа, а не строки. Спасибо, сейчас буду пробовать менять.
Ну не знаю, можно перевести числа в строки и посчитать )))
Или если вы храните числа в массиве то узнать длинну массива.
Или же, если введенных данных меньше, чем нужно попросить ввод заново.
Или сразу добавить недостающие данные к вводу и уже на основе этого сгенерить.
источник

D

DarkPerl in learn.java
Тьма вариантов
источник