Pegando Nomes De uma Lista JTable, removendo as duplicadas e passando para JComboBox

Bom dia, estou com um problema, eu tenho uma lista em uma jTable com nomes e idades, eu quero pegar os nomes da lista, remover os nomes duplicados e passar apenas os nomes únicos para um JComboBox.
Nenhuma as opções que pesquisei e testei, funcionou…

 private void btn_salveActionPerformed(java.awt.event.ActionEvent evt) {                                          
    
    //Pegando valores Do Usuario
    String nome = field_enviar.getText();
    int idade = 21;
    
    
    Pessoa p = new Pessoa(nome, idade);
    
    ComboPessoa c = new ComboPessoa(p.getNome());
    model.addRow(p);
    
    ArrayList<String> lista = new ArrayList<>();
    
    for(int i = 0; i < model.getRowCount(); i++) {
        lista.add(model.getValueAt(i, 0).toString());
    }
    
    Set<String> primes = new LinkedHashSet<String>(lista);
    
    lista.clear();
    
    lista.addAll(primes);
    
    
   System.out.println("Lista: " + lista);

}

Pelo o que eu entendi você quer pegar uma List dos nomes que você já tem e deixar apenas nomes distintos nesta lista correto? Qual versão do Java está utilizando?
Utilizando java 8+ é bem simples, você pode fazer:

List listNomesDistintos = listNomes.stream().distinct().collect(Collectors.toList());

Onde a List de Strings é transformada em Stream é filtrada apenas para Strings distintas e retornada novamente como uma List.

java 8, isso, quero pega a lista da tabela, filtrar eles e passar para um JcomboBox, até o filtro eu consegui, mas quando eu tento passar esses valores para o Jcombobox, ele vai até bem, até que se repete…

Mas o código que você postou é basicamente a tentativa de fazer uma Lista de String ficar com seu conteúdo distinto e não popular um ComboBox. Assumi que o erro era em deixar os valores distintos.
E qual o problema exatamente, a Lista está ou não está populada de forma distinta?
Como você está populando o ComboBox? Posta o código.

a minha ideia era a seguinte Daniel, eu tenho uma tabela, com vários nomes, e alguns nomes são repetidos, então eu queria pegar somente os nomes distintos dessa tabela, a passar ela para um Combox, e sempre que eu adicionar um nome nessa tabela, se ela for distinta ela vai para o combox, se ele não for distinto ele não irar pra combox.

Depois de varias tentativas, eu consegui fazer dessa forma

PessoaModal pModal;
ArrayList<String> list;
ComboBoxModel model;

ArrayList<String> nomes = new ArrayList<>();

public NewJFrame() {
    initComponents();
    
    
    pModal = new PessoaModal();
    jTable.setModel(pModal);
}

//Pegando Array de Strings e removendo as duplicadas
public static <T> ArrayList <T> removeDuplicate (ArrayList<T> list) {
    ArrayList<T> newList = new ArrayList<T>();
    
    for(T element : list) {
        if(!newList.contains(element)) {
            newList.add(element);
        }
    }
    
    return newList;
    
}

//Convetendo Arrays para Strings
public static String[] convert(ArrayList list) {
    ArrayList<String> newList = removeDuplicate(list);
    
    String[] array = newList.toArray(new String[newList.size()]);

    return array;
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   //Adicionando Row
   Pessoa p = new Pessoa();
   p.setNome(jTextField.getText());
   pModal.addRow(p);
   
   //Pegando os nomes e passando para uma Array
   nomes.add(p.getNome());
   
   
   Object[] items = convert(nomes);
   model = new DefaultComboBoxModel(items);
    
   Combo.setModel(model);

}

Troca a definição deste método:

//Pegando Array de Strings e removendo as duplicadas
public static <T> ArrayList <T> removeDuplicate (ArrayList<T> list) {
    ArrayList<T> newList = new ArrayList<T>();
    
    for(T element : list) {
        if(!newList.contains(element)) {
            newList.add(element);
        }
    }
    
    return newList;
    
}

Deixando ele assim:

public static List<String> removeDuplicate (List<String> list) {
    return list.stream().distinct().collect(Collectors.toList());
}
1 curtida

perfeito, brigado daniels!!