private void jTextField1KeyPressed(java.awt.event.KeyEvent evt)
try{
if (evt.getKeyCode() == evt.VK_ENTER) {
list.add(new Double(jTextField1.getText()));
jTextField1.setText("");
list.trimToSize();
}
}catch(java.lang.NumberFormatException nfe)
{
JOptionPane.showMessageDialog(null,"Digite os valores utilizando ponto como delimitador de casas decimais!!!","ADVERTÊNCIA",JOptionPane.ERROR_MESSAGE);
}
}
e esse é o código que eu fiz pra recuperar o conteudo do ArrayList
for (int i = 0; i < list.size(); i++){
System.out.println("Valores da lista - "+list.get(i));
}
Casting de objetos pra tipo primitivo double
Estou com um problema, como eu faço o casting de objetos pra tipos primitivos? Explicando melhor, eu tenho um textfield que ao ir dando enter ele irá enchendo um ArrayList que irá receber só valores inteiros ou doubles, o problema é que eu preciso efetuar a soma desses valores incluidos mas o ArrayList só aceita objetos e os valores inseridos serão dinamicos, uma hora sera inserido por exemplo, 5 valores, em outro momento 10 e por ai vai.Eu não tenho idéia de como recuperar esses valores(recuperar eu sei), transforma-los em tipos primitivos pra efetuar a soma.Segue o trecho do código que fiz
Agradeço qualquer ajuda.
5 Respostas
L
Faca assim,
Double id = new Double(20);
Double id2 = new Double(20);
//para soma-los
double i = id.doubleValue() + id2.doubleValue();
ok!!
Somar não seria meu problema, meu problema é recuperar cada objeto do ArrayList, transforma-los em tipo primitivo, dado que o conteudo do array será dinamico, ele terá uma quantidade de valores variavel.
talves eu tenha escrito alguns metodos errados… mas a ideia é essa!
double b;
iterator it = meuAerray.iterator();
while ( it.hasElement() ) {
b += ((Double)it.next()).doubleValue();
}
simplificando…
for (int i = 0; i < list.size(); i++) {
System.out.println("Valores da lista - "+((Double)list.get(i)).doubleValue() );
}
E
((Double)list.get(i)).doubleValue()
O q vc precisa fazer é um casting para Double e a partir da classe Double obter o tipo primitivo double (metodo getDouble()), como disse nosso amigo maxguzenski.
É bem facil deduzir qual cast vc deve fazer.
Quando vc adicionou elementos no Array, vc adicionou Double.
Ver:
private void jTextField1KeyPressed(java.awt.event.KeyEvent evt)
try{
if (evt.getKeyCode() == evt.VK_ENTER) {
list.add(new Double(jTextField1.getText())); // <-- AQUI - vc deu new Double(elementoString);
jTextField1.setText("");
list.trimToSize();
}
}catch(java.lang.NumberFormatException nfe)
{
JOptionPane.showMessageDialog(null,"Digite os valores utilizando ponto como delimitador de casas decimais!!!","ADVERTÊNCIA",JOptionPane.ERROR_MESSAGE);
}
}
e esse é o código que eu fiz pra recuperar o conteudo do ArrayList
for (int i = 0; i < list.size(); i++){
System.out.println("Valores da lista - "+list.get(i));
}
Na hora de retira-los, vc tem q utilizar Double tambem.
E isso serve para qualquer classe adicionada a um Array ou Collection.
Criado 4 de junho de 2003
Ultima resposta 5 de jun. de 2003
Respostas 5
Participantes 4
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo