Eu declarei uma matriz conforme mostrado abaixo:
int[] arr = new int[10];
Em seguida, atribuí os seguintes valores ao array:
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
Então eu declarei e inicializei uma variável inteira:
int arrayLength = arr.length;
Isso será útil para encontrar o tamanho real, mas existe algum método para encontrar o tamanho lógico do array?
Em primeiro lugar,
length
é uma propriedade, então seria emarr.length
vez dearr.length()
.E ele retornará 10, o tamanho declarado. Os elementos que você não declara explicitamente são inicializados com 0.
fonte
Para encontrar o comprimento de uma matriz,
A
você deve usar alength
propriedade. É comoA.length
, não useA.length()
seu principalmente usado para tamanho de objetos relacionados a string.A propriedade length sempre mostrará o espaço total alocado para a matriz durante a inicialização.
Se você tiver algum desses tipos de problemas, a maneira mais simples é executá-lo. Boa programação!
fonte
Matrizes são alocação de memória estática, portanto, se você inicializar uma matriz de inteiros:
O comprimento será sempre 15, não importa quantos índices sejam preenchidos.
E outra coisa, quando você inicializa uma matriz de inteiros, todos os índices serão preenchidos com "0".
fonte
Em Java, seu tamanho "real" e "lógico" são os mesmos. O tempo de execução preenche todos os slots da matriz com valores padrão na alocação. Portanto, seu
a
contém 10.fonte
Nesse caso, arr.length retornará 10, o tamanho do array que você alocou. O tamanho lógico realmente não se aplica aqui, pois este é um array de comprimento fixo.
Quando você inicializa a matriz:
Java criará uma matriz com 10 elementos e inicializará todos eles para 0. Consulte as especificações da linguagem Java para obter detalhes dos valores iniciais para este e outros tipos primitivos.
fonte
arr
é umaint
matriz de tipo que tem tamanho10
. É um conjunto de10
elementos. Se não inicializarmos um array por padrão, os elementos do array contêm o valor padrão. No caso de int array, o valor padrão é0
.length é uma propriedade aplicável a uma matriz.
aqui
arr.length
vai dar10
.fonte
`
então aqui nós criamos um array com um espaço de memória de 3 ... é assim que parece
0º 1º 2º ...........> Índice 2 4 5 ...........> Número
Então, como você pode ver, o tamanho deste array é 3, mas o índice do array é apenas até 2, pois qualquer array começa com 0º índice.
a saída da segunda instrução deve ser 3, pois o comprimento da matriz é 3 ... Por favor, não se confunda entre o valor do índice e o comprimento da matriz ....
Felicidades!
fonte
fonte
Ele conterá o tamanho real do array, já que foi ele que você inicializou quando o declarou. Java não tem nenhum conceito de tamanho "lógico" de uma matriz, no que diz respeito ao valor padrão de 0 é tão lógico quanto os valores que você definiu manualmente.
fonte
Ele contém o tamanho alocado, 10. Os índices restantes conterão o valor padrão que é 0.
fonte
Se você quiser o tamanho lógico do array, pode percorrer todos os valores do array e compará-los com zero. Incremente o valor se não for zero e esse seria o tamanho lógico. Como o tamanho do array é fixo, você não tem nenhum método embutido, talvez você deva dar uma olhada nas coleções.
fonte
Deveria ser:
Parênteses devem ser evitados.
fonte
Os arrays Java são, na verdade, de tamanho fixo e as outras respostas explicam como .length não está realmente fazendo o que você esperava. Gostaria apenas de acrescentar que, dada a sua pergunta, o que você pode querer usar é um ArrayList, que é um array que pode aumentar e diminuir:
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
Aqui, o método .size () mostrará o número de elementos em sua lista, e você pode aumentá-lo à medida que adiciona coisas.
fonte
se você quer dizer com "tamanho lógico", o índice do array, então simplesmente int arrayLength = arr.length-1; uma vez que o índice do array começa com "0", então o lógico ou "índice do array" sempre será menor que o tamanho real em "um".
fonte
Os arrays são alocados na memória em tempo de compilação em java, então eles são estáticos, os elementos não explicitamente definidos ou modificados são definidos com os valores padrão. Você poderia usar algum código como este, embora não seja recomendado, pois não conta os valores padrão, mesmo se você inicializá-los explicitamente dessa forma, também é provável que cause bugs na linha. Como outros disseram, ao procurar pelo tamanho real, ".length" deve ser usado em vez de ".length ()".
fonte