questão sobre arrays

9 respostas
jason_bourne

Pessoal,

Sobre essa questão, quando eu declaro new int[]{1,2,3,4,5}…na verdade eu estou declarando como se fosse um array bidimensional de inteiros?

Isso vai compilar?

int iArray[5] = new int[]{1,2,3,4,5};

9 Respostas

P

nao vai compilar…
em java, vc nao define o tamanho do array…

vc nao pode fazer:

vc deve fazer:

outra coisa, int é primitivo, nao eh uma Classe…

se vc quiser montar um array bidimensional vc deve informar pelo menos o tamanho da primeira coluna, para que a JVM possa alocar espaco na memoria:

nbluis

Não compila.
O tamanho do array deve ser setado na construção, assim:

int iArray[] = new int[5];

Mas se não me engano, vc não pode colocar o tamanho dele quanto inicializa da maneira como está fazendo.

O array acima é simples, não bidimencional.

P

:shock: :shock:

new int[5]; -> o JVM faz a conversão implicitamente?

nbluis

pardal_nb:
nao vai compilar…
em java, vc nao define o tamanho do array…

Como não ???

Isso funciona normalmente…

warley

Este código nao compila.

Isto acontece por causa do iArray[5] (do 5 ). Isto não é permitido. A comprimento é sempre do lado direito no momento da criação do array.

Mas isto funciona: int iArray[] = new int[]{1,2,3,4,5};

nbluis

Como assim ?
É um array primitivo, simples assim…

P

nbluis:
pardal_nb:
nao vai compilar…
em java, vc nao define o tamanho do array…

Como não ???

Isso funciona normalmente…

O que quis dizer é vc deve informar apenas a quantidade de elementos de uma dimensão, assim os objetos podem ser instanciados na memória

J

As formas de inicialização são:

int a[] = new int[5];  // OK
int a[] = new int[] {1, 2, 3, 4};  // OK

Se o teu array for de uma wrapper class, tipo Integer, então vc pode até fazer isso no java 5:

Integer a[] = new Integer[] {1, 3, 4};
a[0] = 3;
Integer x = a[0];

E isto funciona por causa do autoboxing: o java converte de int para Integer e de Integer para int de acordo com a necessidade.

Raff

tbm é possivel criar um array multidimensional assim olha …

int[][] array = new int[][]{{1,2,3}, {}};
Criado 3 de janeiro de 2008
Ultima resposta 10 de jan. de 2008
Respostas 9
Participantes 6