Pull to refresh
21
0.2

User

Send message
Сдаюсь. Видимо, действительно, javascript не подвержен переполнению.
Таки да, был неправ при выборе элементов массива.

[1<<31, 1].sort((x, y) => x-y)
Как минимум то, что он отсортирован по убыванию, тогда как компаратор предполагает обратное.
Как минимум, неоправданное использование глобальной переменной.
А вот так делать нельзя.
Внезапно
>> [0, Number.MIN_VALUE].sort((a, b) => a - b)
Array [ 0, 5e-324 ]
я этого не заметил/замечаю

Не соглашусь, этого сложно просто не заметить. Не обращать внимания — да, но не замечать невозможно. Не будете же спорить, что запускается бобёр куда как медленнее, нежели pgadmin, например.

Дрова для Оракла? У меня ничего такого не было нужно.

Имелся ввиду jdbc-драйвер.
слишком монструозен

Эта монструозность проявляется только на старте.

требует яву!

Есть дистрибутивы с предустановленной jre, тупо распаковать архив и запустить.

потребовалась рега на oracle.com

Это не вина бобра. Ораклового драйвера нет в публичных репозиториях.

Коннектит именно к БД

Опять же это ограничение не бобровое. It is not possible to access more than one database per connection.

Можно использовать галочку «Show non-default databases» диалоге настройки соединения, чтобы видеть все имеющиеся БД на сервере. А также «Switch default database on access» для переподключения к другой базе при необходимости. Но проще настроить несколько подключений к разным БД.
Если я правильно помню, подобным способом реализованы массивы в стандартной библиотеке scala.
Всё решается гораздо проще и без всякого наследования.
JUnit4
@RunWith(Parameterized.class)
public class ISortTest {

    private ISort sortAlgorithm;

    public ISortTest(ISort sortAlgorithm) {
        this.sortAlgorithm = sortAlgorithm;
    }
    
    @Test
    public void sort() {
        assertNotNull(sortAlgorithm);
        int n = 10000;
        int[] ints = new Random().ints().limit(n).toArray();

        int[] sortInts = Arrays.stream(ints)
                .sorted()
                .toArray();

        int[] testSotrInts = sortAlgorithm.sort(ints);
        assertArrayEquals(sortInts, testSotrInts);
    }

    @Parameterized.Parameters
    public static Collection<Object[]> data() {
        return Arrays.asList(
            new Object[] { new BubleSort() },
            new Object[] { new MergeSort() }
        );
    }

}

JUnit5
class ISortTest {

    @ParameterizedTest
    @MethodSource("data")
    void sort(ISort sortAlgorithm) {
        assertNotNull(sortAlgorithm);
        int n = 10000;
        int[] ints = new Random().ints().limit(n).toArray();

        int[] sortInts = Arrays.stream(ints)
                .sorted()
                .toArray();

        int[] testSotrInts = sortAlgorithm.sort(ints);
        assertArrayEquals(sortInts, testSotrInts);
    }

    static Stream<Arguments> data() {
        return Stream.of(
            Arguments.of(new BubleSort()),
            Arguments.of(new MergeSort())
        );
    }

}

Так всё помнить и не надо. Но как запускать программу в консоли без IDE — это основа основ.

Любой HelloWorld в любом источнике состоит плюс-минус из одних и тех же шагов:
  1. Создать файл HelloWorld.java.
  2. Описать в нём класс HelloWorld с main-методом.
  3. Скомпилировать, выполнив javac HelloWorld.java
  4. Запустить, выполнив java HelloWorld


И каждый шаг расписывается «что», «как» и «почему».

Мне на ум приходит единственный вариант, при котором это знание было Вами утеряно: Вы не написали ни одной программы, не используя IDE, maven/gradle/ant/etc. Я не говорю о чём-то масштабном, хотя бы банальный сумматор двух аргументов командной строки. С целью пощупать и понять, что же творится под капотом любой IDE.
Тут мне пришла идея, даже можно сказать вызов. А как запустить приложения без jar?

Какой вызов? Об этом пишут в любом учебнике по Java.
Варежки в детстве на резинках помните? Скорее всего, используется что-то подобное.
За возвращением null из метода, который должен вернуть Optional, Map, Collection, etc., нужно следить всякими анализаторами. А кто так делает, тому металлической линейкой по пальцам во избежание рецидивов.
Согласитесь, не очень. Намного приятнее иметь дело с такой строчкой:
Optional<User> user = Optional.of(repository.findById(userId));

И поймать всё тот же NullPointerException, если пользователя с переданным идентификатором не найдено.

По-моему, правильным решением будет возвращение Optional-а из findById(), а никак не оборачивание его результата.
Если видов скобок несколько, то, естественно, алгоритм не сработает.

Но в комментарии стояла задача найти
все фигурные скобки в тексте
, т.е. только '{' и '}'.
Задачу можно решить через инкремент/декремент целого числа, если на выходе не равно нулю, то скобки несбалансированы. Случаи, когда закрывающая идёт раньше открывающей, обрабатывается условием, что декрементировать 0 нельзя.
[password|пароль]

Неправильная регулярка. Квадратные скобки должны быть заменены на круглые.
>['password', 'пароль', 'passwпароль', 'рольпа', 'drowssap'].map(w => /[password|пароль]/.test(w));
Array [ true, true, true, true, true ]

Information

Rating
2,512-th
Location
Омск, Омская обл., Россия
Registered
Activity