Copiar objetos de uma lista para outra

Gente estou com um pequeno probleminha, tenho uma lista de objetos que tem vários atributos e gostaria de pegar apenas uma parte dos objetos dessa lista e passar para outra lista. Resumindo quero copiar de uma Lista para Outra apenas objetos selecionados. tipo copiar o objeto da posição 2, 5, 8.

O que você quer dizer com lista? É um Listview?

Se o seu Listview estiver com seleção múltipla ativa, você pode iterar e obter os dados selecionados. Veja por exemplo: https://stackoverflow.com/questions/4590856/how-to-get-selected-items-from-multi-select-list-view

Abraço.

Desculpa acho que esqueci de comentar é uma ArrayList >objeto de uma Classe.

Existe nessa classe que está na lista algum atributo que a identifique como selecionado? Um boolean, por exemplo.

Se sim, você pode iterar a lista e verificar essa propriedade antes de inserir na outra lista. Algo como:

Lista<ClasseQualquer> listaNova = new ArrayList<>();

for (ClasseQualquer c : listaAnterior){
  if (c.estaSelecionado()){
    listaNova.add(c);
  }
}

Acredito que dê para fazer algo mais compacto com lambdas, mas precisaria pesquisar como fazer isso.

Abraço.

Sim essa classe preenche um recyclerview com checbox.

Eu tenho um listener que me retorna a posição da minha lista principal. No momento estou fazendo dessa forma para pegar os valores.

if (produtomarcado.isChecked()) {

String nomeproduto = listadeObjetos.get(position).getNome_produto().toString();
listanova.get(position).setNome_produto(nomeproduto);

}else{

aqui código para retirar da listanova…

}

O problema é que dessa forma eu vou ter que passar todos os atributos para nova lista um por um, e se essa classe tivesse vários atributos.
Queria uma forma simples como essa.
listanova.add(listadeObjetos.get(position)); Mas isso não funciona dá um erro.

Gente dessa forma resolveu meus problemas
listadecompras.add(listaObjProduto.get(position));

É que eu estava esquecendo de passar new Arraylist<>();
public static ArrayList listanova = new ArrayList<>();