oi, como podemos encontrar os documentos que listam todas as propriedades e funções possíveis do objeto array? Não quero dizer o objeto Arrays, que é o único documento que posso encontrar.
Além disso, provavelmente é útil notar que, se você tiver uma matriz multidimensional, poderá obter a respectiva dimensão apenas anexando um '[0]' à matriz que está consultando até chegar ao eixo / tupla / dimensão apropriada.
Provavelmente, isso é melhor explicado com o seguinte código:
publicclassTest{publicstaticvoid main(String[] args){String[][] moo =newString[5][12];System.out.println(moo.length);//Prints the size of the First Dimension in the arraySystem.out.println(moo[0].length);//Prints the size of the Second Dimension in the array}}
Apenas para escolher. Mas acredito que matrizes NÃO são objetos em Java - eles são um dos dois tipos de referência de variáveis. O outro sendo objetos.
Jabbie
2
@jabbie: Sério? Você tem uma referência para isso? Eu apenas questiono, porque você pode dizer Objeto o = new String [] {"olá"};
23416 Simon Nickerson
Simon: Eu acho que a razão dessa declaração funcionar é porque eles introduziram as classes reflexivas para todos os tipos primitivos.
Isso deve ser atualizado na pergunta se for um esclarecimento.
WhiteCat
5
A resposta é "Todos eles". Uma matriz java é alocada com um número fixo de slots de elemento. O atributo "length" indica quantos. Esse número é imutável por toda a vida útil da matriz. Para um equivalente redimensionável, você precisa de uma das classes java.util.List - onde é possível usar o método size () para descobrir quantos elementos estão em uso.
No entanto, há "Em uso" e depois há Em uso . Em uma matriz de objetos de classe, é possível ter slots de elementos cujos elementos são objetos nulos, mesmo que contem no atributo length, mas nas definições da maioria das pessoas, eles não estão em uso (YMMV, dependendo do aplicativo). Não há função interna para retornar as contagens nulas / não nulas.
Os objetos de lista têm ainda outra definição de "Em uso". Para evitar a criação / destruição excessiva das estruturas de armazenamento subjacentes, normalmente há algum preenchimento nessas classes. É usado internamente, mas não é contado no método size () retornado. E se você tentar acessar esses itens sem expandir a Lista (por meio dos métodos add), receberá uma exceção de índice ilegal.
Portanto, para Listas, você pode ter "Em Uso" para elementos confirmados não nulos, Todos os elementos confirmados (incluindo elementos nulos) ou Todos os elementos, incluindo o espaço de expansão atualmente alocado.
Todas as respostas acima são adequadas. O importante a observar é que as matrizes têm o atributo length, mas não o método length. Sempre que você usa strings e matrizes em java, os três modelos básicos que você pode enfrentar são:
String s = new String ("vidyasagar");
System.out.println (s.length ()); // Nesse caso, estamos usando apenas String. Nenhum atributo de comprimento para Strings. nós temos que usar o método length ().
int [] s = novo int [10]; System.out.println (s.length); // aqui usamos o atributo length das matrizes.
String [] s = new String [10];
System.out.println (s.length); // Aqui, embora o tipo de dados seja String, não é uma única String. s é uma referência para a matriz de Strings. Portanto, usamos o atributo length das matrizes para expressar quantas seqüências de caracteres podem caber nessa matriz.
Não é realmente a resposta para sua pergunta, mas se você quiser ter algo como uma matriz que possa crescer e encolher, não use uma matriz em java. Você provavelmente é o melhor usando ArrayList ou outra implementação de lista.
Respostas:
Sim,
.length
(semelhante a uma propriedade, não um método):fonte
Na verdade, é um membro final da matriz, não um método.
fonte
Além disso, provavelmente é útil notar que, se você tiver uma matriz multidimensional, poderá obter a respectiva dimensão apenas anexando um '[0]' à matriz que está consultando até chegar ao eixo / tupla / dimensão apropriada.
Provavelmente, isso é melhor explicado com o seguinte código:
Qual produz a saída:
fonte
propriedade final array.length
é propriedade pública e final. É final porque as matrizes em Java são imutáveis por tamanho (mas mutáveis pelo valor do elemento)
fonte
Matrizes são objetos e possuem um campo de comprimento.
String [] haha = {"olle", "bulle"};
haha.length seria 2
fonte
Em java, há um
length
campo que você pode usar em qualquer matriz para descobrir seu tamanho:fonte
Se você deseja uma função para fazer isso
Isso pode ser útil se você não souber que tipo de matriz você possui, por exemplo, int [], byte [] ou Objeto [].
fonte
Há uma diferença entre o comprimento
String
e oarray
esclarecimento:fonte
A resposta é "Todos eles". Uma matriz java é alocada com um número fixo de slots de elemento. O atributo "length" indica quantos. Esse número é imutável por toda a vida útil da matriz. Para um equivalente redimensionável, você precisa de uma das classes java.util.List - onde é possível usar o método size () para descobrir quantos elementos estão em uso.
No entanto, há "Em uso" e depois há Em uso . Em uma matriz de objetos de classe, é possível ter slots de elementos cujos elementos são objetos nulos, mesmo que contem no atributo length, mas nas definições da maioria das pessoas, eles não estão em uso (YMMV, dependendo do aplicativo). Não há função interna para retornar as contagens nulas / não nulas.
Os objetos de lista têm ainda outra definição de "Em uso". Para evitar a criação / destruição excessiva das estruturas de armazenamento subjacentes, normalmente há algum preenchimento nessas classes. É usado internamente, mas não é contado no método size () retornado. E se você tentar acessar esses itens sem expandir a Lista (por meio dos métodos add), receberá uma exceção de índice ilegal.
Portanto, para Listas, você pode ter "Em Uso" para elementos confirmados não nulos, Todos os elementos confirmados (incluindo elementos nulos) ou Todos os elementos, incluindo o espaço de expansão atualmente alocado.
fonte
Todas as respostas acima são adequadas. O importante a observar é que as matrizes têm o atributo length, mas não o método length. Sempre que você usa strings e matrizes em java, os três modelos básicos que você pode enfrentar são:
System.out.println (s.length ()); // Nesse caso, estamos usando apenas String. Nenhum atributo de comprimento para Strings. nós temos que usar o método length ().
System.out.println (s.length); // Aqui, embora o tipo de dados seja String, não é uma única String. s é uma referência para a matriz de Strings. Portanto, usamos o atributo length das matrizes para expressar quantas seqüências de caracteres podem caber nessa matriz.
fonte
Não é realmente a resposta para sua pergunta, mas se você quiser ter algo como uma matriz que possa crescer e encolher, não use uma matriz em java. Você provavelmente é o melhor usando ArrayList ou outra implementação de lista.
Você pode chamar size () para obter o tamanho.
fonte