Qual a melhor forma (if's versus array)

5 respostas
S

Pessoal,

tava vendo um código aqui e eu queria saber qual o mais adequado.

Esse:

String result = "";
		if (!str.equals("null")) {
			for(int i = 0; i < str.length(); i++) {
				if (str.charAt(i) == '0')
					result = result + str.charAt(i);
				else if (str.charAt(i) == '1')
					result = result + str.charAt(i);
				else if (str.charAt(i) == '2')
					result = result + str.charAt(i);
				else if (str.charAt(i) == '3')
					result = result + str.charAt(i);
				else if (str.charAt(i) == '4')
					result = result + str.charAt(i);
				else if (str.charAt(i) == '5')
					result = result + str.charAt(i);
				else if (str.charAt(i) == '6')
					result = result + str.charAt(i);
				else if (str.charAt(i) == '7')
					result = result + str.charAt(i);
				else if (str.charAt(i) == '8')
					result = result + str.charAt(i);
				else if (str.charAt(i) == '9')
					result = result + str.charAt(i);
			}
		}
		return result;

ou esse:

String result = "";
	char[] digitos = {'0','1','2','3','4','5','6','7','8','9'};
	
	if (!str.equals("null"))
	{
		for(int i = 0; i < str.length();i++)
		{
			for(int j = 0; j < 10; j++)
			{
				if (str.charAt(i) == digitos[j])
				{
					result = result + str.charAt(i);
					break;
				}
			}
		}
	}
	return result;
flws

5 Respostas

L

Pra mim o primeiro é mais adequado,é mais rápido, procura na internet sobre Complexibilidade ou notação O, vc pode aprender muito sobre qual algoritmo utilizar e qual é mais rápido.

A

Olá, estou iniciando em Java agora e já programo em outras linguagens…
no caso acima ele não poderia usar o switch?
como em outras linguagens?
se alguem puder me ajudar… vlws ae…
:grin:

S

Poderia sim, inclusive seria melhor. Não pelo desempenho, que acho que seria o mesmo caso do primeiro, mas pela legibilidade.

Acho que o desempenho do segundo é bem pior, afinal é for dentro de for.

A

Pelo menos assim você não se perderia tão facilmente…
acho que o switch é a melhor forma de testar várias hipóteses…
:grin:
Vlws ae pela atenção…
:grin:

S

Valeu pelas dicas pessoal.
Não tinha pensado no switch.

Eu peguei um código de exemplo e vi esse monte de if’s, quis ver uma forma de reduzir o código.

Valeu pala atenção.

Flws

Criado 7 de maio de 2005
Ultima resposta 9 de mai. de 2005
Respostas 5
Participantes 4