Problema de lógica com arraylist

Tenho uma lista com objetos RetornoProdutoPreVenda, cada obj possui uma sublista
de ProdutoPreVendaExcludente que são os quais estes não podem ser combinados o
problema e que tenho que montar todas as outras combinações possiveis entre eles.

ex:
RetornoProdutoPreVenda cod=1 / ProdutoPreVendaExcludente = 2
RetornoProdutoPreVenda cod=2 / ProdutoPreVendaExcludente = 3
RetornoProdutoPreVenda cod=3 / ProdutoPreVendaExcludente = 1

tenho que mostrar:

RetornoProdutoPreVenda cod=1 + RetornoProdutoPreVenda cod=3
RetornoProdutoPreVenda cod=2 + RetornoProdutoPreVenda cod=1
RetornoProdutoPreVenda cod=3 + RetornoProdutoPreVenda cod=2

e assim por diante, tanta combinações quanto for possiveis

exemplo do for que itera na lista:

[code]for (int i = 0; i < lista_prevenda_PA.size(); i++) {
RetornoProdutoPreVenda pre_venda = lista_prevenda_PA.get(i);

            for (int j = 0; j < pre_venda.getProdutosExcludentes().size() ; j++) {
                ProdutoPreVendaExcludente excludente = pre_venda.getProdutosExcludentes().get(j);

       }
             }

[/code][code]

Certo, e qual o problema que você está enfrentando?

Ola, deixa eu ver se entendi, pra cada elemento da lista voce quer mostrar todos da sublista?

Devo mostrar todos as combinações possíveis de um produto com o outro excluindo os códigos da sublista.

Nessas iteracoes com objetos, use o foreach (assim chamado em outras linguagens)

for (RetornoProdutoPreVenda r : lista_prevenda_PA) {
   for (ProdutoPreVendaExcludente  p : pre_venda.getProdutosExcludentes([b]r[/b])) {
   
   }
}

Altere esse getProdutosExcludentes, para carregar os dados a partir do objeto RetornoProdutoPreVenda