Duvida Array campo de texto

Pessoal boa tarde como faço pra passar um valor que peguei de um textField que armazenei em um variável salario ,e colocar em array?

Opa Felipe, tudo certo?

Então, depende do array que você tem. Se estás falando do tipo Array mesmo, aquele que a gente inicializar com new double[tamanho] (por exemplo), você pode colocar o valor em um índice do array assim:

double valor = 30d;
double[] salarios = new double[5];
salários[0] = valor;

A variável salarios, na posição 0, vai ter o valor da variável valor, que no caso é 30.

Caso teu array esteja cheio e você queira adicionar mais uma posição, infelizmente o tipo Array é imutável em relação ao seu tamanho. Você vai ter que copiar o teu array para um array novo, de tamanho maior. Existe uma função pronta que faz isso, e funciona assim:

double[] salarios = {1d, 3d, 0.3d}; // array com 3 valores
double novoSalario = 56.89; // novo salário para adicionar;
double[] novoArraySalarios = new double[salarios.length + 1]; // novo array, com o tamanho do anterior + 1
System.arraycopy(salarios, 0, novoArraySalarios, 0, salarios.length);
novoArraySalarios[salarios.length] = novoSalario;

Essa função, arrayCopy, funciona assim:

O primeiro parâmetro é o source, a fonte dos dados que você quer copiar. O segundo parâmetro é a partir de qual posição do source você quer copiar (no nosso caso queremos tudo, então começamos da primeira (0). O terceiro argumento é o destino, o destination ou dest, que no nosso caso é o novo array criado, novoArraySalarios. O quarto argumento é em que posição do novo array deve começar a ser inserido os valores copiados do source, e nesse caso queremos que seja no começo (0). O último parâmetro é quantos elementos queremos copiar de src para dest, e nesse caso, são todos os elementos que estão no array salarios, portanto passamos seu tamanho como parâmetro.

Não sei se você percebeu, mas ficar adicionando uma posição toda vez que vc quer adicionar um valor no array pode ser muito ineficiente. Por isso, existem técnicas de alocação mais inteligentes, como ficar dobrando o tamanho do array (começa em 1, depois 2, depois 4, depois 8, depois 16, etc). Isso diminui a quantidade de realocações, mas pode acabar utilizando mais espaço do que você precisa. Existem outras técnicas, se você pesquisar você encontra.

Por isso, o pessoal gosta mais de utilizar a classe ArrayList ao invés do array puro, porque o ArrayList faz essa alocação automaticamente para você! Seria algo mais ou menos assim:

ArrayList<Double> meusSalarios = new ArrayList<>(); // cria um array vazio
meusSalarios.add(3.66356); // realocação de tamanho automática

A implementação do ArrayList é bem mais eficiente do que ficar copiando manualmente, a não ser que você desenvolva um algoritmo de alocação melhor do que o deles kkkkk

Observação: Note que o ArrayList é um tipo parametrizado, você guarda dentro dele apenas os tipos (ou subtipos) daquele declarado entre os angle brackets (<>), no nosso caso Double. Infelizmente não podemos guardar primitivos dentro de um ArrayList, como em ArrayList<double> (ainda, há uma promessa de que isso mude futuramente). Mas você pode utilizar o Double mesmo, porque o java converte de Double pra double sozinho pra você (isso pode se tornar um gargalo de performance se for abusado).

Espero ter ajudado!