Vetor

9 respostas
C

Boa Tarde

Pessoal tem como eu saber se uma posição do vetor está vazia?

9 Respostas

blackfalcon

Claramente que tem como ver… Veja o exemplo que fiz pra voce:

public class VetorVazio { public static void main ( String args[] ) { String vet[] = {"0", "1", "", "3", "4", null}; for ( int i = 0; i <vet.length; i++) { if ( vet[i] == "") System.out.println("vet[" + i + "] e vazio"); if ( vet[i] == null ) System.out.println("vet[" + i + "] e null"); } } }

Se tiver alguma duvida sobre o codigo so falar…

Abraços

C

certo mais se for um vetor de inteiro?
ai não funciona o

if (vet[i] == "")
				System.out.println("vet[" + i + "] e vazio");
G

e o objetivo é ver se ele esta vazio, você apenas ve se está null, o termo vazio em inteiros é apenas null, já que nã é possivel colocar nada além de numeros.

C

hum,ok obrigado.

to com outra duvida nesse exercicio, no if (arrayInteiros[i - 1] > arrayInteiros[i]) {
não entendo pra que serve o -1 no arrayinteiros…
alguem saberia me exclicar?
obrigado…

public class OrdenarArray {

	public static void main(String[] args) {
		int[] arrayInteiros = { 55, 27, 33, 45, 92, 100, 3, 8, 11, 70 };
		boolean estaOrdenado = false;
		while (!estaOrdenado) {
			estaOrdenado = true;
			for (int i = 1; i < arrayInteiros.length; i++) {
				System.out.print("primeiro arrai: "+arrayInteiros[i - 1]);
				if (arrayInteiros[i - 1] > arrayInteiros[i]) {
					System.out.print("arrai 2:"+arrayInteiros[i - 1]);
					System.out.print("segundo arrai:"+arrayInteiros[i]);
					estaOrdenado = false;
					int aux = arrayInteiros[i];
					arrayInteiros[i] = arrayInteiros[i - 1];
					arrayInteiros[i - 1] = aux;
					System.out.print("arrai"+arrayInteiros[i - 1]);
					System.out.println("Ordem atual: " + arrayInteiros[0] + " "
							+ arrayInteiros[1] + " " + arrayInteiros[2] + " "
							+ arrayInteiros[3] + " " + arrayInteiros[4] + " "
							+ arrayInteiros[5] + " " + arrayInteiros[6] + " "
							+ arrayInteiros[7] + " " + arrayInteiros[8] + " "
							+ arrayInteiros[9]);
				}
			}
		}
	}
}
blackfalcon

Cara, o porque serve teria que ver o seu codigo ne, mas a logica é que ele subtrai um do i e te manda o valor ele comparava pra ver se é maior que o outro.

Vamos supor que i = 50;

Ou

Ai se vai executar ou nao voce sabe ne rsrs

Abraços

C

então eu pensei que o -1 iria diminuar uma posição também…
mais pior que ele não faz isso, não to entendendo esse i -1
esse exercicio e de uma apostila e não explica direito …
ele pega o valor de 50
Se arrayInteiros 50 foi maior que arrayInteiros 27, execute…

blackfalcon

cleber_zeh:
então eu pensei que o -1 iria diminuar uma posição também…
mais pior que ele não faz isso, não to entendendo esse i -1
esse exercicio e de uma apostila e não explica direito …
ele pega o valor de 50
Se arrayInteiros 50 foi maior que arrayInteiros 27, execute…

Cara, entao nem sei hein, se caso voce souber posta ai porque tambem quero saber :stuck_out_tongue:

Abraços

A

bom, peguei o codigo e comentei ele pra explicar melhor.

public class OrdenarArray {

	public static void main(String[] args) {
		int[] arrayInteiros = { 55, 27, 33, 45, 92, 100, 3, 8, 11, 70 };
		boolean estaOrdenado = false;
		while (!estaOrdenado) {
			estaOrdenado = true;
			for (int i = 1; i < arrayInteiros.length; i++) {
				// imprimir o 1º posicao do array(1-1=0). no caso aqui é 55
				System.out.print("primeiro arrai: " + arrayInteiros[i - 1]);
				// compara o 1º posicao(1-1=0) = 55, com 2º posicao(1)=27. 55 > 27 = true
				if (arrayInteiros[i - 1] > arrayInteiros[i]) {
					// imprimir o 1º posicao da array(1-1=0). no caso aqui é 55
					System.out.print("arrai 2:" + arrayInteiros[i - 1]);
					// imprimir o 2º posicao da array(1). no caso aqui é 27
					System.out.print("segundo arrai:" + arrayInteiros[i]);
					// passa ser false pq n esta ordenado
					estaOrdenado = false;
					// guarda a 2º posicao do array = 27, na variavel aux
					int aux = arrayInteiros[i];
					// guarda o valor da 1º posicao para 2º
					arrayInteiros[i] = arrayInteiros[i - 1];
					// guarda o valor da 2º posicao para 1º
					arrayInteiros[i - 1] = aux;
					//imprimir a 1º posicao. observe q agora a 1º passa ser 27 e 2º 55 ou seja ta ordenando
					System.out.print("arrai" + arrayInteiros[i - 1]);
					//imprimir toda array
					System.out.println("Ordem atual: " + arrayInteiros[0] + " "
							+ arrayInteiros[1] + " " + arrayInteiros[2] + " "
							+ arrayInteiros[3] + " " + arrayInteiros[4] + " "
							+ arrayInteiros[5] + " " + arrayInteiros[6] + " "
							+ arrayInteiros[7] + " " + arrayInteiros[8] + " "
							+ arrayInteiros[9]);
				}
			}
		}
	}
}

esse i-1 é apenas pra auxiliar ele na hora de compara a posicao anterior com a proxima posicao, assim ele ta verificando se tem algum numero anterior que é maior q o proximo.
espero ter ajudado.

G

só uma coisa utiliza for pra somar as parcelas finais jah que nesse caso é só dez mas poderia ser de 100 ou de 1000 ai vc não ia poder fazer na mão.
de resto ta perfeita a resp. anterior

Criado 21 de junho de 2008
Ultima resposta 23 de jun. de 2008
Respostas 9
Participantes 4