[Resolvido] Alterar o valor de uma unica posição [array]

olá pessoal!

sou novato em programação java, e estou precisando de uma ajuda:

o que me foi pedido:
Criar um programa que
1 - Leia 20 valores do tipo inteiro, atraves de metodo especifico;
2 - Imprima os valores, através do método especifico;
3 - Altere um valor de uma determinada posição do vetor, através de método especifico;
4 - Atribua o valor null a todas posições do vetor, eliminando os valores lidos;

as partes 1, 2, e 4 eu ja tenho uma ideia e quase certeza de como fazer…
meu problema esta na 3ª questão.

segue oq ja fiz:

[code]import javax.swing.JOptionPane;

public class vetor
{
private int vetor[] = new int[20];
private int i;
private String valor;

public void main (String args[])
{
  inserir();
  imprimir();
  alterarValor();
  anularValores();
}    

public void inserir() {

    for (int i = 0; i < 20; i++) {
    valor = JOptionPane.showInputDialog("Digite os valores");
    vetor[i] = Integer.parseInt(valor);
   }

}

public void imprimir() {
   
    for (int i = 0; i < 20; i++) {
    System.out.println(vetor[i]);
   }
   
}[/code]

o que eu queria: atravez de uma JOptionPane de input determinar qual posição deve ser alterada;
atravez de outra JOptionPane atribuir um valor para a posição escolhida acima.

agradeço desde já pela ajuda

olá…se entendi bem o que você quer ficaria algo assim

Integer indice = Integer.parseInt(JOptionPane.showInputDialog(null, "Qual casa alterar? (de 0 á 19)")); Integer valor = Integer.parseInt(JOptionPane.showInputDialog(null, "Qual valor?")); seuArray[indice] = valor;

FLw :slight_smile:

Voce vai ter que criar um método nessa classe aí que altere a posição de um valor do array :B

Tipo assim, exibe um optionPane pedindo qual posição é para alterar, depois voce tem que verificar se a posição existe (nesse caso se posicao >= 0 e posicao <20 ) se não existir exibe uma msg falando do erro, se existir exiba outro optionPane pedindo o valor para qual a posição será alterada, e modifique assim:

vetor[posicao] = valor;

A posição é a que voce pegou no começo e o valor é o valor que voce acabou de pegar xD

Update: 23s de diferença do leoviniga o_0

caros leoviniga e drigo.angelo ambos entenderam e me serão de grd ajuda…
vou colocar em pratica suas ideias e logo darei retorno.

[]'s

pessoal, segui as instruções e apliquei as alterações sugeridas.
informo que está tudo funcionando perfeitamente como desejado!

ao final, ficou dessa forma:

[code]import javax.swing.JOptionPane;

public class vetor
{
private int vetor[] = new int[20];
private int i;
private String valor;
private int valor2;

public void main (String args[])
{
  inserir();
  imprimir();
  alterarValor();
  anularValores();
}    

public void inserir() {

    for (int i = 0; i < 20; i++) {
        valor = JOptionPane.showInputDialog("Digite os valores do array:");
        vetor[i] = Integer.parseInt(valor);
   }

}

public void imprimir() {
   
    for (int i = 0; i < 20; i++) {
    System.out.println(vetor[i]);
   }
   
}

public void alterarValor() { 
    
   int i = Integer.parseInt(JOptionPane.showInputDialog("Qual posição do array será alterada? (de 0 á 19)"));
        if (i >= 0 & i < 20) {
            int valor2 = Integer.parseInt(JOptionPane.showInputDialog("Qual valor?"));
            vetor[i] = valor2;
        }
        else {
            JOptionPane.showMessageDialog(null,"Digite um valor entre 0 e 19","Operação inválida",JOptionPane.ERROR_MESSAGE);
        }
        
}        
        
public void anularValores() {
    
    for (int i = 0; i < 20; i++) {
        vetor[i] = 0;
   }    
        
}

} [/code]

AGRADEÇO PELA AJUDA!