Codigo remove

Eu tenho um código para remover um índice que foi digitado pelo usuário, só que ele não está funcionado corretamente, ele apaga dois valores quando era pra apagar um único, ou então apaga um posição que não foi a correta

public double remove(int K) {
    double remover = 0;
    if(!(K>=0 && K <size())) {
        System.out.println("Posição invalida!");
    }
    for(int k=K;k< size()-1;k++) {
        remover =vet[K]= 0;
    }   
    return remover;
}

Em vez de fazer esse for, vc não faz soh assim:

remover = vet[K]; // obtém o valor a ser removido
vet[K] = 0; // zera o valor da posição K do array

return remover;

Ah, e de acordo com seu código sempre será removido o índice 0 pois a variável já é iniciada em 0 mais o índice que quer remover.

ele ainda continua removendo dois indice

Posta o método atualizado de novo

Mostra o código atualizado

vou por a classe toda ak

public class Lista_array {

private double[] vet;
private int max = 0, livre = 0;
private int taman;
public Lista_array() {
	max =1000;
	vet = new double[max];
	livre= 0;
}
public Lista_array (int maxElementos) {
	max = maxElementos;
	vet = new double [max];
	livre = 0;
}
public void addLast(double v) {
	if(livre < max) {
		vet[livre] = v;
		livre++;
	}else {
		System.out.println("Lista cheia!!!");
	}
		
	}
public double get(int i) {
	if((i >= 0) && (i <size() )) {
		return vet[i];	
	}else {
		System.out.println("Elemento não consta da Lista!!!");
		return 0;
	}
	
}
public int size() {
	taman = livre;
	return taman;
}
public double getLast() {
	//Implementar
	if ( size() != 0 ) {
	return vet[livre -1 ];
	}
	else{
	System.out.println("Lista vazia!!!");
	return 0;
	}
	}

	 public double getFirst() {
    //Implementar
	if ( size() != 0) {
	return vet[0];
	}
	else {
	System.out.println("Lista vazia!!!");
	return 0;
	}
	}
	 public double remove(int K) {
			
			if(!(K>=0) && (K <size())) {
				System.out.println("Posição invalida!");
			}
			//remover = vet[K]; // obtém o valor a ser removido
			vet[K] = 0; // zera o valor da posição K do array
			return 0;
		}
	 
	 public double set (int i, double v) {
			double K;
			if ( (i >= 0) && (i < size()) ) {
				K = vet[i];
				vet [i] = v;
				return K;
			}
			else {
				System.out.println("Valor invalido!!");
				return 0;
			}			
		}
		public double media () {
			double m, soma = 0;
			for (int i = 0; i < size(); i++) {
				soma = soma + vet[i];
			}
			m = soma/size();
			return m;
		}
		
		
	}
´´´

Quem está chamando o método remove?