Existe maneira mais pratica de fazer isso sem usar tanta memória alocada?

10 respostas
Rafael_Burdella
public static void main (String[] args){
	
	int[] num;
	int soma =0;
	
	num = new int [500];
	
	for (int i= 0; i <500; i++){
		
		num[i]=i+i;
		System.out.println(i);
	}
	for (int a= 0; a<500; a++){
		
		soma=num[a]+soma;
	
		
	}
	
	System.out.println(soma);
	
}

10 Respostas

Aporo
public static void main (String[] args){
		
		int[] num;
		int soma =0;
		
		num = new int [500];
		
		for (int i= 0; i <500; i++){
			
			num[i]=i+i;
			System.out.println(i);
			soma+=num[i];
		}
		
		System.out.println(soma);
		
	}
Rafael_Burdella

mais mesmo assim eu vou terde alocar 500 espaços inteiros na memória mais obrigado já é uma outra forma de ver o assunto

raphaeloneves

Veja que a lógica de processamento do laço não influencia na alocação dos 500 objetos. O responsável por isso é unicamente a inicialização da variável num. O problema de trabalhar com arrays é exatamente a inflexibilidade de manipular seu tamanho de forma dinâmica.

Uma forma de melhorar este desempenho é você trabalhar com uma Lista de Integers. Teria o mesmo efeito, porém, o tamanho seria dinamicamente alocado. Segue a adaptação:

public static void main (String[] args){
	
	List<Integer> num = new ArrayList<>();
	int soma =0;
	
	for (int i= 0; i <500; i++){
		
		num.add(i+i);
		System.out.println(i);
		soma+=num.get(i);
	}
	
	System.out.println(soma);
	
}
rmendes08

O que você está tentando fazer exatamente ?

rmendes08
int soma = 0;
for(int i = 0 ; i < 500; i++){
    soma += i;
}
soma *= 2;
Rafael_Burdella

estou estudando ai queria melhorar o código;;

rmendes08

Mas o que o código faz exatamente ? Até onde consegui entender, você dobra os números de 0 a 499 e depois soma tudo. Para fazer isso nem de array você precisa, é só jogar tudo na variável soma. Mais eficiente ainda, é aproveitar a propriedade distributiva e deixar para multiplicar po 2 somente o resultado final.

Rafael_Burdella

eu não dobro os numeros apenas somo :::

Rafael_Burdella

obrigado vcs me ajudaram já mais do que era precisso eu continuo daqui obrigadão mesmo ;;;;

rmendes08

isso é a mesma coisa que dobrar …

Criado 28 de junho de 2017
Ultima resposta 28 de jun. de 2017
Respostas 10
Participantes 4