No contexto da linguagem Java, considere um array definido ...

Próximas questões
Com base no mesmo assunto
Q1846130 Programação

No contexto da linguagem Java, considere um array definido como segue.


String[] nomes = new String[100];


Assinale a expressão cujo valor corresponde ao índice do último elemento do array nomes.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: B - nomes.length - 1.

Para compreender a questão e chegar à alternativa correta, é essencial conhecer como arrays (ou vetores) são estruturados e manipulados na linguagem de programação Java. Um array é uma coleção sequencial de elementos do mesmo tipo. Em Java, os índices dos elementos de um array começam em 0 e vão até o comprimento do array menos um. Isso significa que o primeiro elemento está no índice 0 e o último elemento está no índice que é o comprimento total do array subtraído por 1.

Quando declaramos o array String[] nomes = new String[100];, estamos dizendo que nomes é um array que pode conter até 100 elementos, indexados de 0 a 99. A propriedade length de um array em Java armazena a quantidade total de elementos que o array pode conter, que neste caso é 100. Portanto, o índice do último elemento do array é o valor de length subtraído por 1.

A alternativa correta (B) nomes.length - 1 representa exatamente isso: o valor de length (100) menos 1, resultando em 99, que é o índice do último elemento do array.

As outras alternativas estão incorretas: (A) representaria a quantidade total de elementos e não o índice do último elemento; (C) e (D) são incorretas porque arrays em Java não têm um método size, que é usado em coleções como ArrayList; e (E) simplesmente não é uma propriedade válida para arrays em Java.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

No java os arrays começam com 0. No caso em tela, a propriedade length retorna o valor 100, mas isso causaria um estouro, pois não temos essa posição. Daí ser necessário subtrair o valor -1.

Aqui achei uma referência legal e atualizada sobre esse assunto: https://www.delftstack.com/pt/howto/java/size-vs-length-in-java/#java-collections-size-m%25C3%25A9todo

Mas resumindo, eis uma diferença importante:

Array em Java tem tamanho fixo, e a propriedade/atributo length é usada para mostrar esse tamanho fixo (ou seja, a capacidade máxima) desse array. Ele não mostra a quantidade de elementos preenchidos, e sim o número de elementos que podem ser armazenados.

Já o método size() é um método da classe java.util.Collections, e por isso apenas pode ser usado por coleções como ArrayList, HashSet, HashMap, etc. Como essas coleções são alocadas dinamicamente, o size() retorna o número de elementos atualmente presentes na coleção.

✅Gabarito(B) 

length

Os arrays armazenam um número fixo de dados do mesmo tipo de maneira ordenada. Todas as matrizes em Java têm um campo de comprimento que armazena o espaço alocado para os elementos dessa matriz. É um valor constante usado para descobrir a capacidade máxima do array, independente do número de elementos armazenados.

size()

size() é um método da classe java.util.Collections. A classe Collections é usada por muitas coleções diferentes (ou estruturas de dados) como ArrayList, LinkedList,HashSet e HashMap. O método size() retorna o número de elementos atualmente presentes na coleção. Ao contrário da propriedade length dos arrays, o valor retornado pelo método size() não é constante e muda de acordo com o número de elementos.

Todas as coleções do Collection Framework em Java são alocadas dinamicamente, portanto o número de elementos pode variar. O método size() é usado para controlar o número de elementos.

Fonte:https://www.delftstack.com/pt/howto/java/size-vs-length-in-java/

Em Java, os índices dos arrays começam em 0. Portanto, o índice do último elemento de um array de tamanho n é n - 1.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo