Поскольку Date
реализует Comparable
, он имеет метод compareTo
, как String
.
Итак, ваш пользовательский Comparator
может выглядеть так:
public class CustomComparator implements Comparator {
@Override
public int compare(MyObject o1, MyObject o2) {
return o1.getStartDate().compareTo(o2.getStartDate());
}
}
Метод compare()
должен возвращать int
, поэтому вы не можете напрямую вернуть boolean
, как вы планировали в любом случае.
Ваш код сортировки будет примерно таким, как вы написали:
Collections.sort(Database.arrayList, new CustomComparator());
Немного более короткий способ написать все это, если вам не нужно повторно использовать ваш компаратор должен записать его как встроенный анонимный класс:
Collections.sort(Database.arrayList, new Comparator() {
@Override
public int compare(MyObject o1, MyObject o2) {
return o1.getStartDate().compareTo(o2.getStartDate());
}
});
Теперь вы можете написать последнее пример в более короткой форме с использованием лямбда-выражения для Comparator
:
Collections.sort(Database.arrayList,
(o1, o2) -> o1.getStartDate().compareTo(o2.getStartDate()));
И List
имеет метод sort(Comparator)
, поэтому вы можете сократить это еще больше:
Database.arrayList.sort((o1, o2) -> o1.getStartDate().compareTo(o2.getStartDate()));
Это такая распространенная идиома, что встроен метод для генерации Comparator
для класса с Comparable
:
Database.arrayList.sort(Comparator.comparing(MyObject::getStartDate));
Все это эквивалентные формы.
Программа "вершина" делает большую часть из этого. Это не обрабатывает сетевой трафик все же.
Редактирование:
, Если необходимо зарегистрировать эту информацию для обработки/анализа сообщения, можно использовать стандартный пакет "SAR", чтобы сделать это. Это поддерживает МНОГО различных показателей производительности включая: диск, CPU, память, сеть, и т.д.
SARDStat является моим любимым для таких инструментов. От он - страница:
я люблю его! Это определенно более гибко (и легче использовать), чем SAR, у нас просто есть dstat, пишущий в файл регулярно.
При поиске способа контролировать этот материал на серверах необходимо смотреть на контролирующую платформу как Zabbix. Это позволит Вам контролировать все виды интересных вещей о Вашей системе и, с плагинами, Вашем приложении - а также хранящие данные тенденции сроком на время и разрешение Вам предупредить на триггерных порогах и таком.
Я - огромный поклонник gkrellm, который упаковывает огромный объем информации в маленькую вертикальную панель на Вашем мониторе. Это настраивается; я получаю использование ЦП, дисковое использование, использование памяти, температуры , сетевой трафик, и т.д. Когда моя система становится медленной, я знаю немедленно, является ли это ЦП, диск, память или сетевое соединение. Информационный дизайн довольно хорош; я сказал бы, что объем информации на пиксель высок. И в отличие от 'вершины' можно обычно позволять себе оставить это открытым на одной стороне экрана. ('вершина' использует слишком много экранной недвижимости, которую оставят открытой все время.)