Demora converter double String

11 respostas
diogogama

Galera é o seguinte…

O meu problema é que tenho um array de doubles e preciso converter em String, porém o processo está muito demorado mas muito mesmo…

Gostaria de saber se alguém sabe um jeito de tornar isso mais rápido…

Não preciso postar o código, basicamente se resume nisso… meu array de doubles são grandes, mas quando trato com double mesmo, roda tudo normal, mas quando vou jogar numa string fica uma vida…

Exemplo:

String somaElevations; inti i = 0; for ( ; i < elevations.length; i++) { somaElevations = somaElevations + elevations[i]; }

Podem me ajudar?

11 Respostas

E

Nunca use concatenação de strings para montar strings com muitos pedaços. Use StringBuilder.

Mas juntar os doubles em uma única String é uma coisa bem porca, não?

D

Seu problema pode ser justamente o que p entanglement disse, tente o seguinte com o StringBuilder…

StringBuilder somaElevations = new  StringBuilder();

		for (int i = 0; i < elevations.length; i++) {
			somaElevations.append(elevations[i]);
		}
diogogama

Sei que não está correto entanglement, porém pode ter certeza que é meu único jeito de fazer hoje… rs… já briguei muito aqui por isso… rs…

Mas me digam, como fari se eu tivesse que concatenar com “;”?

Ex.:

String somaElevations; inti i = 0; for ( ; i < elevations.length; i++) { somaElevations = somaElevations + elevations[i] + ";"; }

Só um exemplo.

Podem me ajudar?

D
StringBuilder somaElevations = new  StringBuilder();  
  
        for (int i = 0; i < elevations.length; i++) {  
            somaElevations.append(elevations[i] + ";");  
        }
diogogama

mas a StringBuilder é uma string tmb??? pq se for um objeto diferente não vai rolar, visto que meu código do outro lado não lê.

D

Funciona da mesma forma diogogama. O que acontece é o seguinte:

Quando você usa a concatenação de Strings dessa forma:

somaElevations = somaElevations + elevations[i] + ";";

Você na verdade esta criando diversos objetos String com conteúdos diferentes. Quando utiliza o StringBuilder você trabalha com apenas um objeto String e concatena todos os valores ne apenas um objeto.

diogogama

e como transformo um StringBuilder para String?

D
somaElevations.toString()
diogogama

Galera, não resolveu a performance… ta demorando muito ainda…

D

Como funciona basicamente?

Você coleta esses dados double de onde? De um arquivo? Do banco de dados?

Qual o processamento você faz com esses dados que você coleta?

E

Diogo,

  1. Qual é o tamanho aproximado do array de double? 10 mil, 100 mil, 1 milhão de elementos?
  2. Como você tem de fazer esse método porco de transformar um array em uma string (não é tão porco se você está criando um web service no braço, infelizmente), esses dados ainda têm de ser formatados ou não?
  3. “Muito tempo” é quanto tempo? (O método que você mostrou, obviamente, para um milhão de elementos, vai levar alguns minutos mesmo, o que é inconcebível. Usando um StringBuilder esse tempo se reduz a menos de um segundo).
Criado 21 de junho de 2013
Ultima resposta 21 de jun. de 2013
Respostas 11
Participantes 3