Не сортируются числа в массиве и неверно рассчитывается время
Есть следующее задание:
Создайте класс с именем StopWatch для представления секундомера.
Класс StopWatch должен содержать:
- Скрытые поля данных startTime и endTime с getter-методами.
- Безаргументный конструктор, который инициализирует startTime с текущим временем.
- Метод с именем start(), который сбрасывает startTime до текущего времени.
- Метод с именем stop(), который присваивает endTime текущее время.
- Метод с именем getElapsedTime(), который возвращает прошедшее время на секундомере в миллисекундах.
Нарисуйте UML-диаграмму класса StopWatch, а затем реализуйте этот класс. Напишите клиент этого класса — программу, которая вычисляет время выполнения сортировки 100 000 чисел методом выбора.
2 проблемы:
- не сортируется массив;
- не похоже что время считается верно…
Вот код:
import static java.lang.System.currentTimeMillis;
import java.util.Arrays;
public class StopWatch {
/* поля данных */
private static long startTime;
private static long endTime;
/* Метод main */
public static void main (String[] args) {
StopWatch time = new StopWatch();
int[] list = new int [100000];
for (int i = 0; i < list.length - 1; i++) {
list[i] = (int) (Math.random() * 100000);
}
/* Сортировка массива */
Arrays.sort(list);
System.out.println("\n Сортировка массива: ");
for (int num : list) {
System.out.print(num + " ");
}
time.stop();
System.out.println("\n Время прошло в миллисекундах " + time.getElapsedTime());
}
/* Безаргументный конструктор, который инициализирует startTime с текущим временем */
StopWatch () {
startTime = currentTimeMillis();
}
/* Скрытые поля данных startTime и endTime с getter-методами */
public static long getStartTime() {
return startTime;
}
public static long getEndTime() {
return endTime;
}
/* сбрасывает startTime до текущего времени */
public long start() {
return startTime = currentTimeMillis();
}
/* Присваивает endTime текущее время */
public long stop() {
return endTime = System.currentTimeMillis();
}
/* Возвращает прошедшее время на секундомере в миллисекундах */
public static long getElapsedTime() {
return endTime - startTime;
}
}
Подскажите, где ошибка? P.S. Поменяла сортировку. Сортировка теперь есть. Методы вызвала. Я так понимаю, теперь работает верно программа?
Источник: Stack Overflow на русском