Size: a a a

2020 June 24

S

Singular in learn.java
все сделал через ридер, спасибо
источник

S

Sonne in learn.java
Точно знаю, что для такой задачи есть еще какой-то алгоритм, но не помню как он назывался
источник

В

Витя in learn.java
Ребят,  какие бесплатные ресурсы с обилием практики можете посоветовать? Типа JavaRush
источник

В

Витя in learn.java
Теорию читаю, вроде понятно , а вот с практикой туговато
источник

N🌌

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

N🌌

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

L

Linnik 🎄 in learn.java
источник

L

Linnik 🎄 in learn.java
А
источник

N🌌

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

N🌌

Nazarii 🌌 in learn.java
то же самое
источник

N🌌

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

L

Linnik 🎄 in learn.java
Да, уже платно
источник

L

Linnik 🎄 in learn.java
По-моему
источник

T

Tagir in learn.java
Singular
Данный способ какой - то не правильный. В плане производительности. Есть способ пройтись один раз по всей строке?
Так как у меня переменная с 10к слов. Парсер вообщем
Pattern.compile("...").splitAsStream(str) - будет генерировать подстроки на лету, без промежуточного массива
источник

L

Linnik 🎄 in learn.java
Если аккаунт там был зареган, то до января бесплатно
источник

GV

Gukov Viktor in learn.java
Andrii Litovchenko
Почему же, count для одного на мапу
Чтобы в цикле для каждого уникального слова не гонять
Решил накидать бенч. Предложение из 100_000 слов. В первом случае делаем
        Arrays.stream(test.split("\\s+"))
               .filter(s -> s.equals(word))
               .count();


Во втором случае:
        Arrays.stream(test.split("\\s+"))
               .collect(Collectors.groupingBy(e -> e, Collectors.counting()));



Benchmark                       Mode  Cnt   Score   Error  Units
Benchmark.plainStreamWithArray  avgt    9  10,424 ± 2,444  ms/op
Benchmark.streamToMap           avgt    9  48,828 ± 9,693  ms/op
источник

GV

Gukov Viktor in learn.java
Интересно на чем проседает. Ну или я не так понял
источник

T

Tagir in learn.java
Ну блин. Мэпку писать время нужно
источник

GV

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


То у нас же совпадения хэшей у слов будут минимальные, вырождения не должно быть. Просто дорогие put?
источник

GV

Gukov Viktor in learn.java
Tagir
Pattern.compile("...").splitAsStream(str) - будет генерировать подстроки на лету, без промежуточного массива
С таким вариантом еще лучше получилось
Benchmark                       Mode  Cnt   Score   Error  Units
Benchmark.patternToStream       avgt    9   1,255 ± 0,404  ms/op
Benchmark.plainStreamWithArray  avgt    9  10,270 ± 2,513  ms/op
Benchmark.streamToMap           avgt    9  47,813 ± 4,097  ms/op
источник