Если вы хотите, чтобы результат сортировки был одним списком, отсортированным по дате, вы должны поместить все узлы в один список массива. Если два типа (node1 и node2) расширяют общий базовый класс, вы можете использовать для вас список Generics в Java.
List<Node> nodes = new ArrayList<Node>();
nodes.add(node1);
nodes.add(node2);
Node[] nodeArrayToSort = nodes.toArray();
Если два типа узлов не наследуются от общего класса, вы можете просто использовать Список объектов.
Теперь вам нужно написать свой собственный компаратор. Вот пример, который вы можете использовать, если у типов узлов есть общий суперкласс, который содержит поле Date.
public class NodeComparator implements Comparator<Node> {
@Override
public int compare(Node node1, Node node2) {
return node1.getDate().compare(node2.getDate());
}
}
Теперь, когда у вас есть пользовательский компаратор и массив со всеми вашими узлами, это всего лишь одна строка кода Java для сортировки списка.
Arrays.sort(nodeArrayToSort, new NodeComparator());
Javadoc для вышеуказанного метода можно найти здесь , если вам нужна дополнительная информация о его поведении.
Используя описанный выше метод, легко увидеть, как можно написать функцию сравнения любого типа, чтобы изменить поведение вашего рода. Вы также можете написать столько пользовательских классов Comparator, сколько пожелаете, чтобы переключать их во время выполнения. Надеюсь это поможет! :)