Cita: mi intención era no utilizar nuevos objetos
No veo el motivo.
Tu solución es la peor opción posible, ya que, además de dar problemas de concurrencia como indica Xerelo, lo que haces es un producto cartesiano de complejidad cuadrática O(n^2), por lo que a nivel de rendimiento no puede escalar.
En cualquier caso es tu decisión.
Un saludo