Excluir inteiros em uma lista

6 respostas
D

Alguém saberia me informar como excluir um inteiro armazenado em uma lista?
Parece que para a exclusão ser efetuada com Objetos, usa-se por exemplo um “v[i]= null” , mas para inteiros parece ser diferente. Qual seria a maneira correta com inteiros. Valeu e bom feriado a todos.

6 Respostas

Lavieri

Array não é um Lista... são coisas diferentes...

vc não pode efetivamente excluir nada de uma Array, mas vc pode fazer copias, trocar os valores etc etc...

c vc quer uma lista, e ainda por cima uma mutavel, use uma List ... por exemplo...

private List<Integer> numeros = new ArrayList<Integer>();


numeros.add(7);
numeros.add(4);
numeros.add(8);
numeros.add(2);
numeros.add(1);

//para remover um item ?

numeros.remove(7); // ai o 7 sai da lsita ^^ ...

//para percorrer a lista ?

for(Integer numero : numeros)
    System.out.println(numero);

não entendeu muito ??leia esse artigo

Coleções: Como não usar Arrays

D

Sim, nesse caso seria um arraylist, mas eu fiz uma lista linear e queria saber como se exclue um item desses. Parece que tenho de sobrepor um inteiro na posição de memoria de outro para "simular" uma exclusão. Mas n sei direito ainda.

public class ListaIntCF{
	private int v[];
	private int n;
	
	public ListaIntCF(int capacidade){
	
	n=0;
	v=new int[capacidade];
	}
	public ListaIntCF()
	{
		this(10);
	}

    public void incluiNoFim(int valor){
    	if(n==v.length)
    	System.out.println("A lista tá bem cheia");
    	else{
    		v[n]=valor;
    		n++;
    	}
    }
    public void exclui(){
    
    	for(int i=0;i<=1;i++)
    	
    	v[i+1]=v[i];	
    	n--;
    }
       
    public void incluiNoInicio(int valor){
    	
    	if(n==v.length)
    	System.out.println("Lista Cheia");
    	else{
    		for(int i=n;i>=1;i--)
    		
    		v[i]=v[i-1];
    		v[0]=valor;
    		
    		n++;
    	}
    }

    public void incluiNoPenultimo(int valor){
    	for(int i=n;i>n-1;i--)
    	v[i]=v[i-1];
    	
    	v[n-1]=valor;
    	
    	n++;
    }
   public int consulta(int nodo){
   	for(int i=0;i<n;i++)
   	if(v[i]==nodo)
   System.out.println("O valor "+nodo+" foi encontrado");
   	
   	return nodo; 
   }
    
    public void exibe(){
    	int i;
		System.out.println(" A lista eh");
		for( i=0;i<n;i++)
			System.out.println(v[i]+" ");
    }
}
J

só por curiosidade…
são inteiros positivos, inteiros negativos, ou ambos?

[]'s

D

bom, de certa forma poderiam ser inteiros positivos ou negativos

DavidUser

faz um método para substituir o valor do array amterior pelo o que vier depois do que vc deseja escluir e atribuir nulo ao último.

saco? tipo:
v[1]=2 , v[2]=5, v[3]=8

[size=9]métodoDelete(int númeroDoArray)[/size]
métodoDelete(2) olha ai oq ele faz:
v[2]=v[3]
v[3]=null

Até podia faze o método pra vc mais to com problemão aki no forum e ninguem ajuda então to pesquisando modos para resolver desde ontem de manhã!

D

valeu mesmo aí pessoal pela ajuda.
Tenho uma prova no meio da semana, em q terei de aplicar isso. Mas o lado bom é q as vezes nos momentos de pressão vc é obrigado a aprender mais rapidamente hehe.

Criado 20 de abril de 2009
Ultima resposta 20 de abr. de 2009
Respostas 6
Participantes 4