Здравствуйте!
Собирается статистика в виде записей Record: (pid, metrics_id, value), где pid - id'шник проекта, metrics_id - id'шник метрики, value - значение метрики.
Т.к. важна статистика именно для проекта в целом, то она собирается следующим образом:
Сначала для каждого проекта собираются все Record'ы и добавляются в ArrayList, например: ((1, 1, 23),(1, 2, 2)) - для проекта 1, значение метрики 1 равно 23, а метрики 2 - 2м.
И так для каждого проекта. Затем все эти ArrayList'ы объединяются в один ArrayList.
Получается ArrayList<ArrayList<Record>>.
Как лучше всего отсортировать конечный ArrayList по выбранной метрике?
Допустим, хочу отсортировать всю статистику по метрике с metrics_id = 2, по возрастанию.
Т.е. вызываю некоторую функцию Sort(ArrayList<ArrayList<Record>> stats, int metrics_id, boolean order_asc), которая возвращает новый ArrayList<ArrayList<Record>>, отсортированный по заданной метрике и в заданном порядке.
Как лучше всего это сделать? Можно ли это реализовать через Comparator/Comparable?
Что делать, если значения метрик будут не int, а float?