la questione è: tu dentro il vector metti un oggetto che contiene il risultato dell'unione.
Ad esempio, avrai Classe1, Classe2 e Classe3 legate come segue

Classe3 = Classe1 UNION Classe2.

Ora per "sfruttare" Collection.sort devi fare in modo che Classe3 implementi il metodo compare (cioè sia Comparable): la Collection.sort agisce su una serie di oggetti tra loro comparabili.
Il compare in pratica non fa altro che confrontare 2 istanze dello stesso tipo e dire quale viene prima e quale no.

Difetto di questo approccio: ovviamente per ogni tipo di unione che fai devi pensare ad una classe che modelli l'unione e che faccia i tuoi mestieri.

Questo ti dicono di fare tutti gli altri