Size: a a a

2020 June 23

AC

Arti Chornyi Shampin... in learn.java
Arti Chornyi Shampinyon
а у нас есть англичане? изучаю mergesort

// copy elements from both arrays until either array gets emptied
       while (e1 < arr1.length && e2 < arr2.length) {

копировать элементы с обоих массивов, пока оба из них не опустеют или один из них?
while (e1 < arr1.length && e2 < arr2.length) {
я так понимаю это код
источник

AC

Arti Chornyi Shampin... in learn.java
class MergeSort extends SortingAlgorithm {

   /
    * Логика сортировки слиянием
    * подразумевает разбиение массива поровну до тех пор пока из одного массива не получится несколько
    * мелких — размером не более двух элементов.
    * После разбиения следует обратное слияние, выбираются по одному первому элементу от каждого массива и сравниваются между собой.
    * Наименьший элемент отправляется в результирующий массив,
    * оставшийся при первом сравнении элемент остается актуальным для сравнения с элементом из другого массива на следующем шаге
    * Время выполнения: O(nlogn);
    */

   MergeSort() {
       this.name = "Сортировка слиянием (MergeSort)";
   }

   @Override
   void sortAsc(double[] values) {
       int l = 0;
       int u = values.length - 1;
       int mid = l + (u - l) / 2;
       if (u > l) {
           // Создаем первый подмассив для левой части массива и рекурсивно применяем к нему sortAsc
           double[] array1 = new double[mid + 1 - l];
           for (int i = 0; i < array1.length; i++)
               array1[i] = values[l + i];
           sortAsc(array1);
           // Создаем второй подмассив для правой части массива и рекурсивно применяем к нему sortAsc
           double[] array2 = new double[u - mid];
           for (int i = 0; i < array2.length; i++)
               array2[i] = values[mid + i + 1];
           sortAsc(array2);
           // слияние двух отсортированных выше массивов
           double[] mArr = mergeSortedArrays(array1, array2);
           // заполнение массива values отсортированными значениями из массива mArr
           for (int i = 0; i < mArr.length; i++)
               values[i] = mArr[i];
       }
   }

   @Override
   void sortDesc(double[] values) {
       sortAsc(values);
       ReverseArray.reverse(values);
   }

   /
    * Слияние двух массивов и возвращение результата
    */
    double[] mergeSortedArrays(double[] arr1, double[] arr2) {
       int len = arr1.length + arr2.length;
       double[] values = new double[len];
       int e1 = 0;
       int e2 = 0;
       int i = 0;
       // копировать элементы с обоих массивов, пока оба из них не опустеют
       while (e1 < arr1.length && e2 < arr2.length) {
           // копируем подходящий элемент из двух для сортировки
           if (arr1[e1] < arr2[e2])
               values[i++] = arr1[e1++];
           else
               values[i++] = arr2[e2++];
       }
       // копируем оставшиеся элементы из первого массива если остались
       while (e1 < arr1.length)
           values[i++] = arr1[e1++];
       // копируем оставшиеся элементы из второго массива если остались
       while (e2 < arr2.length)
           values[i++] = arr2[e2++];
       return values;
   }
}
источник

A5

Artemie 5oh5 in learn.java
У меня возник такой вопрос: если мы создаем приватный вложенный класс(nested class) конструктор всё равно будет публичным или нужно указывать, что он private?
источник

DS

Dmitriy Shilnikov in learn.java
Arti Chornyi Shampinyon
class MergeSort extends SortingAlgorithm {

   /
    * Логика сортировки слиянием
    * подразумевает разбиение массива поровну до тех пор пока из одного массива не получится несколько
    * мелких — размером не более двух элементов.
    * После разбиения следует обратное слияние, выбираются по одному первому элементу от каждого массива и сравниваются между собой.
    * Наименьший элемент отправляется в результирующий массив,
    * оставшийся при первом сравнении элемент остается актуальным для сравнения с элементом из другого массива на следующем шаге
    * Время выполнения: O(nlogn);
    */

   MergeSort() {
       this.name = "Сортировка слиянием (MergeSort)";
   }

   @Override
   void sortAsc(double[] values) {
       int l = 0;
       int u = values.length - 1;
       int mid = l + (u - l) / 2;
       if (u > l) {
           // Создаем первый подмассив для левой части массива и рекурсивно применяем к нему sortAsc
           double[] array1 = new double[mid + 1 - l];
           for (int i = 0; i < array1.length; i++)
               array1[i] = values[l + i];
           sortAsc(array1);
           // Создаем второй подмассив для правой части массива и рекурсивно применяем к нему sortAsc
           double[] array2 = new double[u - mid];
           for (int i = 0; i < array2.length; i++)
               array2[i] = values[mid + i + 1];
           sortAsc(array2);
           // слияние двух отсортированных выше массивов
           double[] mArr = mergeSortedArrays(array1, array2);
           // заполнение массива values отсортированными значениями из массива mArr
           for (int i = 0; i < mArr.length; i++)
               values[i] = mArr[i];
       }
   }

   @Override
   void sortDesc(double[] values) {
       sortAsc(values);
       ReverseArray.reverse(values);
   }

   /
    * Слияние двух массивов и возвращение результата
    */
    double[] mergeSortedArrays(double[] arr1, double[] arr2) {
       int len = arr1.length + arr2.length;
       double[] values = new double[len];
       int e1 = 0;
       int e2 = 0;
       int i = 0;
       // копировать элементы с обоих массивов, пока оба из них не опустеют
       while (e1 < arr1.length && e2 < arr2.length) {
           // копируем подходящий элемент из двух для сортировки
           if (arr1[e1] < arr2[e2])
               values[i++] = arr1[e1++];
           else
               values[i++] = arr2[e2++];
       }
       // копируем оставшиеся элементы из первого массива если остались
       while (e1 < arr1.length)
           values[i++] = arr1[e1++];
       // копируем оставшиеся элементы из второго массива если остались
       while (e2 < arr2.length)
           values[i++] = arr2[e2++];
       return values;
   }
}
Ну очевидно же, что не пока оба опустеют, а пока один из них не опустеет
источник

A

Alexey in learn.java
Антон
Tomcat что он из себя представляет

"Tomcat — контейнер сервлетов с открытым исходным кодом, разрабатываемый Apache Software Foundation. Реализует спецификацию сервлетов, спецификацию JavaServer Pages и JavaServer Faces. Написан на языке Java. Tomcat позволяет запускать веб-приложения и содержит ряд программ для самоконфигурирования. "

А на понятном языке?
А шо непонятного. Java EE - это, по сути, Java SE + большой набор спецификаций и интерфейсов, необходимых для работы с вебом, которые должны реализовываться сервером приложений. В эти спецификации входят такие технологии как Servlet API, JSP, JSF, CDI, EJB, MDB, JMS и т.д по списку (их оч много). Обычный Tomcat из всего этого огромного списка реализует только три самые часто встречающиеся технологии - Servlets, JSP и JSF, поэтому он называется не сервером приложений, а всего лишь контейнером сервлетов.
источник

A

Alexey in learn.java
Но этого минимального набора чаще всего должно быть достаточно для работы со стеком Spring
источник

AN

Anna Naumova in learn.java
Всем привет. Подскажите, пожалуйста.
Есть проект, состоящий из одного модуля. Для работы приложения предварительно генерируются классы, которые складываются в папку build/generated-sources. Не могу правильно импортировать классы из этой папки в основную программу (папка src/*). До этого проблем не возникало, Идея сама "подхватывала" классы из папки build. Сориентируйте, будьте добры :)
Заранее спасибо.
https://c.radikal.ru/c03/2006/2c/708aa649a3df.jpg
источник

t

tikkitavy in learn.java
наверно надо пометить generated-sources как папку с исходниками
источник

AN

Anna Naumova in learn.java
tikkitavy
наверно надо пометить generated-sources как папку с исходниками
Смущает, что раньше этого делать не приходилось :) В любом случае, спасибо за ответ.
источник

t

tikkitavy in learn.java
Anna Naumova
Смущает, что раньше этого делать не приходилось :) В любом случае, спасибо за ответ.
в идее есть еще genarated sources root, не знаю какой правильней
источник

HR

Halesh7802 Rutherfor... in learn.java
,
источник

MN

Midow Noname in learn.java
у меня вопрос почему в англ ютуберов все  пишут на eclipse там какие то удобные функции есть?
источник

GV

Gukov Viktor in learn.java
Midow Noname
у меня вопрос почему в англ ютуберов все  пишут на eclipse там какие то удобные функции есть?
Бесплатно
источник

MN

Midow Noname in learn.java
Gukov Viktor
Бесплатно
а че с intelj
источник

MN

Midow Noname in learn.java
?
источник

GV

Gukov Viktor in learn.java
Midow Noname
а че с intelj
Платно, при Ultimate
источник

GV

Gukov Viktor in learn.java
Исторически раньше Eclipse был более популярен. Многие привыкли
источник

QH

Quantum Harmonizer in learn.java
Midow Noname
а че с intelj
тоже бесплатно, только, в отличие от Eclipse, ещё и работает охуенно
источник

AL

Andrii Litovchenko in learn.java
Quantum Harmonizer
тоже бесплатно, только, в отличие от Eclipse, ещё и работает охуенно
Только если Community Edition
источник

MN

Midow Noname in learn.java
мне в eclipse не нравится то что он добавляет название класса в конец имени переменной
источник