Antes de postar uma nova resposta, considere que já existem mais de 25 respostas para esta pergunta. Por favor, verifique se sua resposta contribui com informações que não estão entre as existentes.
janniks 03/02
Respostas:
2684
Você pode usar declaração de matriz ou literal de matriz (mas somente quando você declara e afeta a variável imediatamente, os literais de matriz não podem ser usados para redesignar uma matriz).
Para tipos primitivos:
int[] myIntArray =newint[3];int[] myIntArray ={1,2,3};int[] myIntArray =newint[]{1,2,3};// Since Java 8. Doc of IntStream: https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.htmlint[] myIntArray =IntStream.range(0,100).toArray();// From 0 to 99int[] myIntArray =IntStream.rangeClosed(0,100).toArray();// From 0 to 100int[] myIntArray =IntStream.of(12,25,36,85,28,96,47).toArray();// The order is preserved.int[] myIntArray =IntStream.of(12,25,36,85,28,96,47).sorted().toArray();// Sort
Qual é o propósito de ter a segunda e a terceira maneira de fazer isso?
Quazi Irfan
123
@iamcreasy Parece que a segunda maneira não funciona com declarações de retorno. return {1,2,3}dá um erro, enquanto return new int[]{1,2,3}funciona bem (assumindo, é claro, que sua função retorna um array inteiro).
Skylar Ittner
1
@ SkylarMT Mas ainda podemos usar a primeira maneira de usar com a declaração de retorno.
Quazi Irfan
6
@iamcreasy Eu escrevi recentemente uma função que retornava uma matriz de ints. Se um erro acontecesse dentro da função, eu queria que ele retornasse um certo valor, mas a função precisava retornar uma matriz. Qual o caminho que funciona para uma declaração de retorno de uma linha? Apenas o terceiro.
Skylar Ittner
5
@apadana No segundo caso, você está criando um objeto anônimo que é definido apenas no escopo incluído (função ou qualquer outra coisa). Depois de devolvê-lo ao chamador, ele não é mais válido. Usando a nova palavra-chave, você aloca o novo objeto da pilha e é válido fora do escopo de definição.
Teukkam
280
Existem dois tipos de matriz.
Matriz unidimensional
Sintaxe para valores padrão:
int[] num =newint[5];
Ou (menos preferido)
int num[]=newint[5];
Sintaxe com os valores fornecidos (inicialização de variável / campo):
int[] num ={1,2,3,4,5};
Ou (menos preferido)
int num[]={1,2,3,4,5};
Nota: Por conveniência, int [] num é preferível porque indica claramente que você está falando aqui sobre array. Caso contrário, não há diferença. De modo nenhum.
for(int[] a : num){for(int i : a){System.out.println(i);}}
Matrizes irregulares são matrizes multidimensionais.
Para obter uma explicação, consulte os detalhes da matriz multidimensional nos tutoriais oficiais do java
O primeiro não levará a uma matriz nula / vazia, em vez de uma matriz com valores padrão?
vipin8169
Concordo com esse ponto, e podemos adicionar mais um recurso, podemos alterar o tamanho dinamicamente.
AdamIJK
Eu poderia argumentar com você no ponto em que uma matriz multidimensional é um "tipo" diferente de matriz. É simplesmente um termo usado para descrever uma matriz que contém outras matrizes. As matrizes externas e internas (e as intermediárias, se existirem) são apenas matrizes regulares.
Type[]é o tipo da variável chamada nome ("nome" é chamado identificador ). O "Tipo" literal é o tipo de base, e os colchetes significam que este é o tipo de matriz dessa base. Os tipos de matriz são por sua vez tipos próprios, o que permite criar matrizes multidimensionais como Type[][](o tipo de matriz de Type []). A palavra-chave newdiz para alocar memória para a nova matriz. O número entre os colchetes indica o tamanho da nova matriz e a quantidade de memória a ser alocada. Por exemplo, se Java sabe que o tipo base Typeocupa 32 bytes e você deseja uma matriz de tamanho 5, ele precisa alocar internamente 32 * 5 = 160 bytes.
Você também pode criar matrizes com os valores já existentes, como
int[] name ={1,2,3,4,5};
que não apenas cria o espaço vazio, mas o preenche com esses valores. Java pode dizer que as primitivas são números inteiros e que existem cinco, portanto o tamanho da matriz pode ser determinado implicitamente.
Portanto, não é necessário incluir int[] name = new int[5]?
Biscoito Monstro
31
A seguir, mostra a declaração de uma matriz, mas a matriz não é inicializada:
int[] myIntArray =newint[3];
A seguir, são mostradas a declaração e a inicialização da matriz:
int[] myIntArray ={1,2,3};
Agora, o seguinte também mostra a declaração e a inicialização da matriz:
int[] myIntArray =newint[]{1,2,3};
Mas este terceiro mostra a propriedade da criação anônima de objeto de matriz, apontada por uma variável de referência "myIntArray"; portanto, se escrevermos apenas "new int [] {1,2,3}"; então é assim que um objeto de matriz anônimo pode ser criado.
Se apenas escrevermos:
int[] myIntArray;
isso não é declaração de matriz, mas a seguinte declaração completa a declaração acima:
Não há absolutamente nenhuma diferença entre a segunda e a terceira abordagens, exceto que a segunda abordagem só funciona quando você também está declarando uma variável. Não está claro o que você quer dizer com "mostra a propriedade da criação anônima de objeto de matriz", mas eles realmente são partes de código equivalentes.
21715 Jon Skeet
4
Além disso, o primeiro trecho faz inicializar a matriz - é a garantia de ter o valor 0 para cada elemento da matriz.
Jon Skeet
Realmente não há diferença entre a segunda e a terceira abordagens?
truthadjustr 15/01
27
Alternativamente,
// Either method worksString arrayName[]=newString[10];String[] arrayName =newString[10];
Isso declara uma matriz chamada arrayNamede tamanho 10 (você tem elementos de 0 a 9 para usar).
Qual é o padrão para o qual usar? Acabei de descobrir o primeiro e acho terrivelmente enganador: |
Anti Earth
2
Pelo que vale a pena, meu professor disse que a segunda maneira é mais típica em Java e transmite melhor o que está acontecendo; como uma matriz relacionada ao tipo em que a variável foi convertida.
Celeritas
2
Para uma observação lateral: Uma linguagem com mais de uma semântica para declarar uma coisa que significa design de linguagem ruim.
Muhammad Suleman
26
Além disso, caso você queira algo mais dinâmico, existe a interface List. Isso não terá bom desempenho, mas é mais flexível:
List<String> listOfString =newArrayList<String>();
listOfString.add("foo");
listOfString.add("bar");String value = listOfString.get(0);
assertEquals( value,"foo");
O @CyprUS Listé uma classe genérica, tem um tipo como parâmetro, incluído <>. Isso ajuda porque você só precisa definir um tipo genérico uma vez e pode usá-lo com vários tipos diferentes. Para uma explicação mais detalhada, consulte docs.oracle.com/javase/tutorial/java/generics/types.html
Heimdall
15
Existem duas maneiras principais de criar uma matriz:
Este, para uma matriz vazia:
int[] array =newint[n];// "n" being the number of spaces to allocate in the array
E este, para uma matriz inicializada:
int[] array ={1,2,3,4...};
Você também pode criar matrizes multidimensionais, assim:
int[][] array2d =newint[x][y];// "x" and "y" specify the dimensionsint[][] array2d ={{1,2,3...},{4,5,6...}...};
Pegue o tipo primitivo, intpor exemplo. Existem várias maneiras de declarar e intagrupar:
int[] i =newint[capacity];int[] i =newint[]{value1, value2, value3, etc};int[] i ={value1, value2, value3, etc};
onde em tudo isso, você pode usar em int i[]vez de int[] i.
Com reflexão, você pode usar (Type[]) Array.newInstance(Type.class, capacity);
Observe que nos parâmetros do método, ...indica variable arguments. Essencialmente, qualquer número de parâmetros é bom. É mais fácil explicar com o código:
Dentro do método, varargsé tratado como normal int[]. Type...só pode ser usado em parâmetros de método, portanto int... i = new int[] {}, não será compilado.
Observe que ao passar int[]para um método (ou qualquer outro Type[]), você não pode usar a terceira maneira. Na declaração int[] i = *{a, b, c, d, etc}*, o compilador assume que os {...}meios an int[]. Mas isso é porque você está declarando uma variável. Ao passar uma matriz para um método, a declaração deve ser new Type[capacity]ounew Type[] {...} .
Matrizes multidimensionais
Matrizes multidimensionais são muito mais difíceis de lidar. Essencialmente, uma matriz 2D é uma matriz de matrizes. int[][]significa uma matriz de int[]s. A chave é que, se um int[][]é declarado como int[x][y], o índice máximo é i[x-1][y-1]. Essencialmente, um retangular int[3][5]é:
int[] a =IntStream.iterate(10, x -> x <=100, x -> x +10).toArray();Out:[10,20,30,40,50,60,70,80,90,100]int[] b =IntStream.iterate(0, x -> x +1).takeWhile(x -> x <10).toArray();Out:[0,1,2,3,4,5,6,7,8,9]
Por que você deseja criar uma matriz dessa maneira?
Dorian Gray
9
Declarando uma matriz de referências a objetos:
classAnimal{}classHorseextendsAnimal{publicstaticvoid main(String[] args){/*
* Array of Animal can hold Animal and Horse (all subtypes of Animal allowed)
*/Animal[] a1 =newAnimal[10];
a1[0]=newAnimal();
a1[1]=newHorse();/*
* Array of Animal can hold Animal and Horse and all subtype of Horse
*/Animal[] a2 =newHorse[10];
a2[0]=newAnimal();
a2[1]=newHorse();/*
* Array of Horse can hold only Horse and its subtype (if any) and not
allowed supertype of Horse nor other subtype of Animal.
*/Horse[] h1 =newHorse[10];
h1[0]=newAnimal();// Not allowed
h1[1]=newHorse();/*
* This can not be declared.
*/Horse[] h2 =newAnimal[10];// Not allowed}}
No caso de objetos, você precisa atribuí-lo para nullinicializá-los usando new Type(..)classes como Stringe Integersão casos especiais que serão tratados da seguinte maneira
String[] a ={"hello","world"};// is equivalent toString[] a ={newString({'h','e','l','l','o'}),newString({'w','o','r','l','d'})};Integer[] b ={1234,5678};// is equivalent toInteger[] b ={newInteger(1234),newInteger(5678)};
Em geral, você pode criar matrizes Mdimensionais
int[][]..[] array =// ^ M times [] brackets{{..{// ^ M times { bracket// this is array[0][0]..[0]// ^ M times [0]}}..}// ^ M times } bracket;
Vale ressaltar que a criação de uma Mmatriz dimensional é cara em termos de espaço. Desde quando você cria uma Mmatriz dimensional com Ntodas as dimensões, o tamanho total da matriz é maior que N^M, uma vez que cada matriz tem uma referência e, na dimensão M, existe uma matriz de referências (M-1) dimensional. O tamanho total é o seguinte
Space= N^M + N^(M-1)+ N^(M-2)+..+ N^0// ^ ^ array reference// ^ actual data
-50 e / ou +50 estão realmente incluídos? Ou seja, o interno está aberto em uma ou nas duas extremidades?
Peter Mortensen
1
-50 está incluído e +50 é excluído. Esta informação do java api "deu origem (inclusive) e encadernou (exclusivo)". Eu uso declaração de intervalo do wiki . Então, acho que será mais correto [-50, 50) #
Kirill Podlivaev
3
Outra maneira de declarar e inicializar ArrayList:
privateList<String> list =newArrayList<String>(){{
add("e1");
add("e2");}};
Há muitas respostas aqui. Estou adicionando algumas maneiras complicadas de criar matrizes (do ponto de vista do exame , é bom saber disso)
Declarar e definir uma matriz
int intArray[]=newint[3];
Isso criará uma matriz de comprimento 3. Como contém um tipo primitivo, int, todos os valores são definidos como 0 por padrão. Por exemplo,
intArray[2];// Will return 0
Usando colchetes [] antes do nome da variável
int[] intArray =newint[3];
intArray[0]=1;// Array content is now {1, 0, 0}
Inicialize e forneça dados para a matriz
int[] intArray =newint[]{1,2,3};
Desta vez, não há necessidade de mencionar o tamanho no suporte da caixa. Mesmo uma variante simples disso é:
int[] intArray ={1,2,3,4};
Uma matriz de comprimento 0
int[] intArray =newint[0];int length = intArray.length;// Will return length 0
Semelhante para matrizes multidimensionais
int intArray[][]=newint[2][3];// This will create an array of length 2 and//each element contains another array of length 3.// { {0,0,0},{0,0,0} }int lenght1 = intArray.length;// Will return 2int length2 = intArray[0].length;// Will return 3
Usando colchetes antes da variável:
int[][] intArray =newint[2][3];
É absolutamente bom se você colocar um suporte de caixa no final:
int[] intArray []=newint[][]{{1,2,3},{4,5,6}};int[] intArray1 []=newint[][]{newint[]{1,2,3},newint[]{4,5,6}};int[] intArray2 []=newint[][]{newint[]{1,2,3},{4,5,6}}// All the 3 arrays assignments are valid// Array looks like {{1,2,3},{4,5,6}}
Não é obrigatório que cada elemento interno seja do mesmo tamanho.
int[][] intArray =newint[2][];
intArray[0]={1,2,3};
intArray[1]={4,5};//array looks like {{1,2,3},{4,5}}int[][] intArray =newint[][2];// This won't compile. Keep this in mind.
Você precisa se certificar de que está usando a sintaxe acima e que a direção a seguir deve especificar os valores entre colchetes. Caso contrário, não será compilado. Alguns exemplos:
Number[] numArray ={1,2,3,4};// java.lang.Number
numArray[0]=newFloat(1.5f);// java.lang.Float
numArray[1]=newInteger(1);// java.lang.Integer// You can store a subclass object in an array that is declared// to be of the type of its superclass.// Here 'Number' is the superclass for both Float and Integer.Number num[]=newFloat[5];// This is also valid
IMPORTANTE: Para tipos referenciados, o valor padrão armazenado na matriz é nulo.
Matriz estática: matriz de tamanho fixo (seu tamanho deve ser declarado no início e não pode ser alterado posteriormente)
Matriz dinâmica: nenhum limite de tamanho é considerado para isso. (Matrizes dinâmicas puras não existem em Java. Em vez disso, a Lista é mais recomendada)
Para declarar uma matriz estática de Inteiro, string, float, etc ... use as instruções de declaração e inicialização abaixo.
int[] intArray =newint[10];String[] intArray =newint[10];float[] intArray =newint[10];// here you have 10 index starting from 0 to 9
Para usar recursos dinâmicos, você precisa usar List ... List é pura matriz dinâmica e não há necessidade de declarar tamanho no início. Abaixo está a maneira correta de declarar uma lista em JAVA>
É muito fácil declarar e inicializar uma matriz. Por exemplo, você deseja salvar cinco elementos inteiros 1, 2, 3, 4 e 5 em uma matriz. Você pode fazer isso da seguinte maneira:
a)
int[] a =newint[5];
ou
b)
int[] a ={1,2,3,4,5};
portanto, o padrão básico é para inicialização e declaração pelo método a) é:
A matriz pode conter tipos de dados primitivos e objetos de uma classe, dependendo da definição de matriz. No caso de tipos de dados primitivos, os valores reais são armazenados em locais de memória contíguos. No caso de objetos de uma classe, os objetos reais são armazenados no segmento de heap.
Matrizes
unidimensionais : a forma geral de uma declaração de matriz unidimensional é
type var-name[];
OR
type[] var-name;
Instanciando uma matriz em Java
var-name =new type [size];
Por exemplo
int intArray[];//declaring array
intArray =newint[20];// allocating memory to array// the below line is equals to line1 + line2int[] intArray =newint[20];// combining both statements in oneint[] intArray =newint[]{1,2,3,4,5,6,7,8,9,10};// accessing the elements of the specified arrayfor(int i =0; i < intArray.length; i++)System.out.println("Element at index "+ i +" : "+ intArray[i]);
Embora esse código possa responder à pergunta, seria melhor explicar como ele resolve o problema sem apresentar outros e por que usá-lo. Respostas apenas de código não são úteis a longo prazo.
Respostas:
Você pode usar declaração de matriz ou literal de matriz (mas somente quando você declara e afeta a variável imediatamente, os literais de matriz não podem ser usados para redesignar uma matriz).
Para tipos primitivos:
Para aulas, por exemplo
String
, é o mesmo:A terceira maneira de inicializar é útil quando você declara a matriz primeiro e depois a inicializa. O elenco é necessário aqui.
fonte
return {1,2,3}
dá um erro, enquantoreturn new int[]{1,2,3}
funciona bem (assumindo, é claro, que sua função retorna um array inteiro).Existem dois tipos de matriz.
Matriz unidimensional
Sintaxe para valores padrão:
Ou (menos preferido)
Sintaxe com os valores fornecidos (inicialização de variável / campo):
Ou (menos preferido)
Nota: Por conveniência, int [] num é preferível porque indica claramente que você está falando aqui sobre array. Caso contrário, não há diferença. De modo nenhum.
Matriz multidimensional
Declaração
Ou
Ou
Inicialização
Ou
Matriz irregular (ou matriz não retangular)
Então, aqui estamos definindo colunas explicitamente.
Outra maneira:
Para acessar:
Alternativamente:
Matrizes irregulares são matrizes multidimensionais.
Para obter uma explicação, consulte os detalhes da matriz multidimensional nos tutoriais oficiais do java
fonte
também é válido, mas eu prefiro os colchetes após o tipo, porque é mais fácil ver que o tipo da variável é realmente uma matriz.
fonte
int[] a, b;
não será o mesmo queint a[], b;
, um erro fácil de cometer se você usar o último formulário.Existem várias maneiras pelas quais você pode declarar uma matriz em Java:
Você pode encontrar mais informações no site de tutoriais da Sun e no JavaDoc .
fonte
Acho útil se você entender cada parte:
Type[]
é o tipo da variável chamada nome ("nome" é chamado identificador ). O "Tipo" literal é o tipo de base, e os colchetes significam que este é o tipo de matriz dessa base. Os tipos de matriz são por sua vez tipos próprios, o que permite criar matrizes multidimensionais comoType[][]
(o tipo de matriz de Type []). A palavra-chavenew
diz para alocar memória para a nova matriz. O número entre os colchetes indica o tamanho da nova matriz e a quantidade de memória a ser alocada. Por exemplo, se Java sabe que o tipo baseType
ocupa 32 bytes e você deseja uma matriz de tamanho 5, ele precisa alocar internamente 32 * 5 = 160 bytes.Você também pode criar matrizes com os valores já existentes, como
que não apenas cria o espaço vazio, mas o preenche com esses valores. Java pode dizer que as primitivas são números inteiros e que existem cinco, portanto o tamanho da matriz pode ser determinado implicitamente.
fonte
int[] name = new int[5]
?A seguir, mostra a declaração de uma matriz, mas a matriz não é inicializada:
A seguir, são mostradas a declaração e a inicialização da matriz:
Agora, o seguinte também mostra a declaração e a inicialização da matriz:
Mas este terceiro mostra a propriedade da criação anônima de objeto de matriz, apontada por uma variável de referência "myIntArray"; portanto, se escrevermos apenas "new int [] {1,2,3}"; então é assim que um objeto de matriz anônimo pode ser criado.
Se apenas escrevermos:
isso não é declaração de matriz, mas a seguinte declaração completa a declaração acima:
fonte
Alternativamente,
Isso declara uma matriz chamada
arrayName
de tamanho 10 (você tem elementos de 0 a 9 para usar).fonte
Além disso, caso você queira algo mais dinâmico, existe a interface List. Isso não terá bom desempenho, mas é mais flexível:
fonte
List
é uma classe genérica, tem um tipo como parâmetro, incluído<>
. Isso ajuda porque você só precisa definir um tipo genérico uma vez e pode usá-lo com vários tipos diferentes. Para uma explicação mais detalhada, consulte docs.oracle.com/javase/tutorial/java/generics/types.htmlExistem duas maneiras principais de criar uma matriz:
Este, para uma matriz vazia:
E este, para uma matriz inicializada:
Você também pode criar matrizes multidimensionais, assim:
fonte
Pegue o tipo primitivo,
int
por exemplo. Existem várias maneiras de declarar eint
agrupar:onde em tudo isso, você pode usar em
int i[]
vez deint[] i
.Com reflexão, você pode usar
(Type[]) Array.newInstance(Type.class, capacity);
Observe que nos parâmetros do método,
...
indicavariable arguments
. Essencialmente, qualquer número de parâmetros é bom. É mais fácil explicar com o código:Dentro do método,
varargs
é tratado como normalint[]
.Type...
só pode ser usado em parâmetros de método, portantoint... i = new int[] {}
, não será compilado.Observe que ao passar
int[]
para um método (ou qualquer outroType[]
), você não pode usar a terceira maneira. Na declaraçãoint[] i = *{a, b, c, d, etc}*
, o compilador assume que os{...}
meios anint[]
. Mas isso é porque você está declarando uma variável. Ao passar uma matriz para um método, a declaração deve sernew Type[capacity]
ounew Type[] {...}
.Matrizes multidimensionais
Matrizes multidimensionais são muito mais difíceis de lidar. Essencialmente, uma matriz 2D é uma matriz de matrizes.
int[][]
significa uma matriz deint[]
s. A chave é que, se umint[][]
é declarado comoint[x][y]
, o índice máximo éi[x-1][y-1]
. Essencialmente, um retangularint[3][5]
é:fonte
No Java 9
Usando diferentes
IntStream.iterate
eIntStream.takeWhile
métodos:No Java 10
Usando a inferência de tipo de variável local :
fonte
Se você deseja criar matrizes usando reflexões, pode fazer o seguinte:
fonte
Declarando uma matriz de referências a objetos:
fonte
Matriz é uma lista seqüencial de itens
Se é um objeto, então é o mesmo conceito
No caso de objetos, você precisa atribuí-lo para
null
inicializá-los usandonew Type(..)
classes comoString
eInteger
são casos especiais que serão tratados da seguinte maneiraEm geral, você pode criar matrizes
M
dimensionaisVale ressaltar que a criação de uma
M
matriz dimensional é cara em termos de espaço. Desde quando você cria umaM
matriz dimensional comN
todas as dimensões, o tamanho total da matriz é maior queN^M
, uma vez que cada matriz tem uma referência e, na dimensão M, existe uma matriz de referências (M-1) dimensional. O tamanho total é o seguintefonte
No Java 8, você pode usar assim.
fonte
Para criar matrizes da classe Objects, você pode usar o
java.util.ArrayList
. para definir uma matriz:Atribua valores à matriz:
Leia a partir da matriz:
Nota:
variableName
é uma referência à matriz, o que significa que manipularvariableName
manipularáarrayName
para loops:
loop for que permite editar
arrayName
(convencional para loop):fonte
Declare e inicialize para Java 8 e posterior. Crie uma matriz inteira simples:
Crie uma matriz aleatória para números inteiros entre [-50, 50] e para duplos [0, 1E17]:
Sequência de potência de dois:
Para String [], você deve especificar um construtor:
Matrizes multidimensionais:
fonte
Outra maneira de declarar e inicializar ArrayList:
fonte
Há muitas respostas aqui. Estou adicionando algumas maneiras complicadas de criar matrizes (do ponto de vista do exame , é bom saber disso)
Declarar e definir uma matriz
Isso criará uma matriz de comprimento 3. Como contém um tipo primitivo, int, todos os valores são definidos como 0 por padrão. Por exemplo,
Usando colchetes [] antes do nome da variável
Inicialize e forneça dados para a matriz
Desta vez, não há necessidade de mencionar o tamanho no suporte da caixa. Mesmo uma variante simples disso é:
Uma matriz de comprimento 0
Semelhante para matrizes multidimensionais
Usando colchetes antes da variável:
É absolutamente bom se você colocar um suporte de caixa no final:
Alguns exemplos
Não é obrigatório que cada elemento interno seja do mesmo tamanho.
Você precisa se certificar de que está usando a sintaxe acima e que a direção a seguir deve especificar os valores entre colchetes. Caso contrário, não será compilado. Alguns exemplos:
Outra característica importante é a covariância
IMPORTANTE: Para tipos referenciados, o valor padrão armazenado na matriz é nulo.
fonte
Você também pode fazer isso com
java.util.Arrays
:Este é bem simples e direto.
fonte
Com a inferência de tipo de variável local, você precisa especificar o tipo apenas uma vez:
Ou
fonte
var
.var
openjdk.java.net/jeps/286Matriz tem dois tipos básicos.
Para declarar uma matriz estática de Inteiro, string, float, etc ... use as instruções de declaração e inicialização abaixo.
Para usar recursos dinâmicos, você precisa usar List ... List é pura matriz dinâmica e não há necessidade de declarar tamanho no início. Abaixo está a maneira correta de declarar uma lista em JAVA>
fonte
Declarar matriz:
int[] arr;
Initialize Array:
int[] arr = new int[10];
10 representa o número de elementos permitidos na matrizDeclarar matriz multidimensional:
int[][] arr;
Inicializar matriz multidimensional:
int[][] arr = new int[10][17];
10 linhas e 17 colunas e 170 elementos porque 10 vezes 17 é 170.Inicializar uma matriz significa especificar o tamanho dela.
fonte
É muito fácil declarar e inicializar uma matriz. Por exemplo, você deseja salvar cinco elementos inteiros 1, 2, 3, 4 e 5 em uma matriz. Você pode fazer isso da seguinte maneira:
a)
ou
b)
portanto, o padrão básico é para inicialização e declaração pelo método a) é:
datatype
deve estar em minúsculas.Portanto, o padrão básico é para inicialização e declaração pelo método a é:
Se for uma matriz de string:
Se for uma matriz de caracteres:
Para float double, o formato da matriz será igual ao número inteiro.
Por exemplo:
mas quando você declara e inicializa a matriz pelo "método a", terá que inserir os valores manualmente ou por loop ou algo assim.
Mas quando você faz isso pelo "método b", não precisará inserir os valores manualmente.
fonte
A matriz pode conter tipos de dados primitivos e objetos de uma classe, dependendo da definição de matriz. No caso de tipos de dados primitivos, os valores reais são armazenados em locais de memória contíguos. No caso de objetos de uma classe, os objetos reais são armazenados no segmento de heap.
Matrizes
unidimensionais : a forma geral de uma declaração de matriz unidimensional é
Instanciando uma matriz em Java
Por exemplo
Ref: https://www.geeksforgeeks.org/arrays-in-java/
fonte
outro exemplo completo com a classe de filmes 😋
fonte
exemplo:
ou
exemplo:
fonte
fonte