introduction java arrays
Este tutorial apresenta o conceito de matrizes em Java. Também introduzimos tópicos relacionados como comprimento, tipos de dados, clonagem, cópia, classificação, etc. em matrizes Java:
Na programação, você sempre lida com dados. Os dados precisam ser armazenados em locais de memória e, para acessá-los de vez em quando e processá-los de acordo, deve ser dado algum nome. Isso é feito por variáveis.
Portanto, se quiser armazenar o valor 10 na memória, você declarará uma variável do tipo int e armazenará o valor como int num = 10;
qual camada do modelo osi funciona com frames?
Agora, suponha que o requisito do programa seja tal que você precise de 10 variáveis do tipo int.
Nesse caso, você terá que declarar 10 variáveis do tipo int da seguinte maneira:
int a1;
int a2;
int a3;
int a4;
int a5;
int a6;
int a7;
int a8;
int a9;
int a10;
As declarações acima colocarão a carga desnecessária de manutenção no programador. Em vez de declarar tantas variáveis, que tal declarar uma única variável e, em seguida, ter todos esses 10 valores atribuídos a essa variável? Isso é o que faremos quando definirmos uma matriz e atribuirmos valores a ela.
Vamos começar com arrays em Java.
O que você aprenderá:
- Array Java
- Array Java - Criação e Inicialização
- Elementos de impressão em array Java
- Comprimento da matriz em Java
- Tipos de dados de array Java
- Java String Array e vários métodos
- Arrays multidimensionais em Java
- Array de objetos Java
- Retornar um array em Java
- Classe Array Java
- Arrays em Java 8
- perguntas frequentes
- Conclusão
Array Java
Os arrays nada mais são do que uma estrutura de dados usada para conter os elementos de dados do mesmo tipo de maneira sequencial. A partir do exemplo acima, você pode alterar a definição de dez variáveis em uma única variável e armazenar todos os dez valores usando subscritos.
Vamos fazer isso da maneira indicada a seguir:
A [0] = 1;
A [1] = 2;
A [2] = 3;
A [3] = 4;
A [4] = 5;
A [5] = 6;
A [6] = 7;
A [7] = 8;
A [8] = 9;
A [9] = 10;
Armazenamos todos os dez valores na variável baseada em índice. O primeiro índice começa em 0. Portanto, o primeiro valor está em 0ºíndice e o último valor está em 9ºíndice. Esses índices também são chamados de Subscripts.
Na memória do computador, o Array A acima será representado como:
Agora podemos definir um array como uma variável que é uma coleção de elementos do mesmo tipo de dados e armazenados em locais de memória contíguos. O tamanho de uma matriz é especificado no momento da declaração e, portanto, o tamanho é fixo.
Os arrays que vamos discutir neste tutorial são arrays de tamanho fixo ou estáticos. Java também oferece suporte a matrizes dinâmicas chamadas “ArrayList”, cujo tamanho pode ser alterado instantaneamente. Discutiremos ArrayList em detalhes posteriormente.
Algumas das características dos Arrays em Java estão listadas abaixo:
- Em Java, um Array é um objeto instanciado a partir de uma classe gerada dinamicamente.
- Internamente, o array Java implementa interfaces Serializable e Cloneable.
- O array Java também possui classe de objeto como sua classe pai.
- Você pode armazenar valores de tipo integrados e derivados em matrizes Java.
- Você pode obter o comprimento de um array usando length member e não sizeof como em C / C ++.
- Java permite arrays simples e multidimensionais.
Neste tutorial, apresentaremos todos os conceitos de array para o leitor que iremos
para cobrir nesta série em Arrays Java.
Vamos começar!!
Array Java - Criação e Inicialização
É necessário criar arrays para usá-los no programa. A criação de matrizes inclui a especificação do tipo de dados dos elementos que a matriz irá conter, bem como o número de elementos que ela conterá.
Discutiremos a criação de arrays de várias maneiras e também de diferentes métodos com os quais podemos inicializar arrays.
Um exemplo de um dos métodos usados para a criação e inicialização do array é fornecido abaixo.
public class Main { public static void main(String[] args) { int[] myArray; myArray = new int[5]; myArray[0] = 1; myArray[1] = 3; System.out.println('myArray[0]:' + myArray[0]); System.out.println('myArray[1]:' + myArray[1]); System.out.println('myArray[2]:' + myArray[2]); System.out.println('myArray[3]:' + myArray[3]); System.out.println('myArray[4]:' + myArray[4]); } }
Resultado:
Neste programa, declaramos uma matriz int e a instanciamos usando new. Então, inicializamos os elementos nos índices 0 e 1 com os valores 1 e 3, respectivamente.
Finalmente, imprimimos todos os elementos do array. Observe que os elementos que não inicializamos têm valores padrão como 0, pois o tipo de array é int.
Elementos de impressão em array Java
Quando arrays são usados em programas, eles devem ser exibidos. Para exibir elementos de array, empregamos métodos especiais como for loop, forEach loop, método toString da classe Arrays, etc. Este tópico inclui todos os vários métodos usados para imprimir elementos de array.
A seguir está um programa que usa o método toString da classe ‘Arrays’ para imprimir elementos de array.
import java.util.*; public class Main { public static void main(String[] args) { int[] myArray; myArray = new int[5]; myArray[0] = 1; myArray[1] = 3; System.out.println('Array Elements : ' + Arrays.toString(myArray)); } }
Resultado:
Comprimento da matriz em Java
O comprimento de uma matriz indica o número de elementos presentes na matriz. Ao contrário de C / C ++, onde usamos o operador ‘sizeof’ para obter o comprimento do array, o array Java tem a propriedade ‘length’. Exploraremos mais sobre esta propriedade mais tarde.
A seguir está o programa que exibe o comprimento de um Array.
import java.util.*; public class Main { public static void main(String[] args) { int[] myArray = {1,3,5,7,9,11}; System.out.println('Size of the given array : ' + myArray.length); } }
Resultado:
Neste programa, inicializamos o array usando o literal do array e, em seguida, usando a propriedade length, exibimos o tamanho / comprimento do array.
Tipos de dados de array Java
Você pode ter matrizes de todos os tipos de dados. Neste tópico, exploraremos arrays com diferentes tipos de dados e suas definições.
No programa abaixo, definimos matrizes de tipo int e string e exibimos seus respectivos conteúdos .
import java.util.*; public class Main { public static void main(String[] args) { int[] myArray = {1,3,5,7,9,11}; String[] strArray = {'one','two','three','four','five'}; System.out.println('Elements of int array : ' + Arrays.toString(myArray)); System.out.println('Elements of String array : ' + Arrays.toString(strArray)); } }
Resultado:
Adicionando um elemento a uma matriz
A adição de um elemento ao array é uma operação importante. Os arrays em Java são estáticos e de comprimento fixo. Portanto, você precisa fornecer um conjunto específico de operações para adicionar um novo elemento ao array. Os vários métodos para adicionar um elemento ao array serão discutidos aqui.
Um dos métodos de adição de um elemento à matriz é usando ArrayList como a estrutura intermediária. Convertemos a matriz em ArrayList. Em seguida, adicionamos o elemento à ArrayList e alteramos a ArrayList de volta para array.
O programa abaixo mostra essa implementação.
import java.util.*; class Main { public static void main(String[] args) { int n = 10; int i; Integer intArray[] = { 1, 2, 3, 4, 5 }; System.out.println('Original Array:
' + Arrays.toString(intArray)); int num = 10; Listintlist = new ArrayList(Arrays.asList(intArray)); intlist.add(num); intArray = intlist.toArray(intArray); System.out.println('
Array after adding ' + num + '
' + Arrays.toString(intArray)); } }
Resultado:
qual é o melhor anti spyware
Remover / excluir um elemento de uma matriz
Remover um elemento de uma matriz também é outra operação importante. Java não nos permite remover diretamente um elemento. Portanto, empregamos outras opções para fazer isso.
Dada a seguir é a implementação de um dos métodos para remova o elemento de uma matriz usando um ArrayList .
import java.util.*; importjava.util.stream.*; class Main { public static void main(String[] args) { int[] tensArray = { 10,20,30,40,50}; System.out.println('Input Array: '+ Arrays.toString(tensArray)); int index = 1; System.out.println('Index to be removed: ' + index); if (tensArray == null || index = tensArray.length) { System.out.println('No element to delete'); } ListtensList = IntStream.of(tensArray).boxed().collect(Collectors.toList()); tensList.remove(index); tensArray = tensList.stream().mapToInt(Integer::intValue).toArray(); System.out.println('Array after deleting element at '+ index + ':
'+ Arrays.toString(tensArray)); } }
Resultado:
Aqui, primeiro convertemos a matriz em ArrayList e depois removemos o elemento usando o método remove ArrayList. Depois disso, convertemos ArrayList de volta ao array e geramos o array alterado.
Copiando um Array em Java
Discutiremos algumas das operações para copiar elementos do array de um array para outro. Também discutiremos a cópia superficial e profunda de matrizes.
Um desses métodos é o método copyOf () da classe Arrays do pacote java.util .
import java.util.*; public class Main { public static void main(String[] args) { int[] intArray = {10,15,20,25,30,35,40}; int array_len = intArray.length; System.out.println('Original Array:' + Arrays.toString(intArray)); int[] copy_intArray = Arrays.copyOf(intArray, array_len); System.out.println('Copied Array:' + Arrays.toString(copy_intArray)); } }
Resultado:
O método ‘copyOf’ da classe Arrays copia a matriz especificada como um argumento junto com seu comprimento para outra matriz.
Clonando uma matriz em Java
Você também pode fazer um clone de um array em Java. Java fornece um método para isso no pacote ArrayUtils. Exploraremos mais sobre clonagem aqui.
Vamos implementar um exemplo simples que clona um array em Java.
import java.util.*; class Main { public static void main(String args[]) { int num_Array[] = {5,10,15,20,25,30}; int clone_Array[] = num_Array.clone(); System.out.println('Original num_Array:' + Arrays.toString(num_Array)); System.out.println('Cloned num_Array:'+ Arrays.toString(clone_Array)); } }
Resultado:
Portanto, clonar é apenas copiar usando um método diferente.
Classificando matrizes em Java
Classificar os elementos da matriz ou ordená-los em ordem crescente ou decrescente é uma das operações importantes. A maioria dos aplicativos precisa que seus dados sejam classificados. Java fornece uma classificação de filtro para arrays. Discutiremos isso em detalhes em classificação.
A seguir está um exemplo simples de s ortar um array em Jave usando o método Arrays.sort () .
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] num_Array = {115,32,56,78,94,108,100,63}; System.out.println('Original Array: ' + Arrays.toString(num_Array)); Arrays.sort(num_Array); System.out.println('Sorted Array: ' + Arrays.toString(num_Array)); } }
Resultado:
Conforme mostrado acima, o método de classificação da classe Arrays classifica os elementos da matriz em ordem crescente.
Reverter um array em Java
Reverter a sequência de elementos também não é fornecido por matrizes. Assim como remover, temos que fazer algumas reviravoltas e alcançar os resultados. Neste tópico, veremos os métodos para reverter um array.
O programa a seguir mostra o implementação de reversão de uma matriz .
import java.util.*; public class Main { public static void main(String[] args) { Integer [] even_Arrayr = {2,4,6,8,10}; System.out.println('Original Array:' + Arrays.asList(even_Arrayr)); Collections.reverse(Arrays.asList(even_Arrayr)); System.out.println('Reversed Array:' + Arrays.asList(even_Arrayr)); } }
Resultado:
Índice de matriz fora dos limites de exceção
Quando você tenta acessar os elementos da matriz além do comprimento especificado ou de um índice negativo, o compilador lança a exceção ‘ArrayIndexOutOfBounds’. Exploraremos mais sobre essa exceção em nosso tópico relacionado.
import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayListmyList = new ArrayList(); myList.add('one'); myList.add('two'); System.out.println(myList.get(2)); } }
Resultado :
No programa acima, temos uma ArrayList com duas entradas e tentamos obter a entrada no índice 2 que não existe. Portanto, o programa fornece a Exceção IndexOutofBounds.
Java String Array e vários métodos
Entre todos os tipos de dados suportados pelo Java, String é o mais importante. Portanto, a matriz do tipo String também merece uma discussão especial. Como os dados contidos em uma matriz de string são principalmente texto, existem vários métodos fornecidos para manipular o texto.
import java.util.ArrayList; public class Main { public static void main(String[] args) { String[] rgb = {'Red', 'Green', 'Blue'}; System.out.println('The string array elements:'); for (String item: rgb) { System.out.print(item + ' '); } } }
Resultado:
Este é um programa básico para array de strings. Acabamos de declarar um array de strings e exibimos seu conteúdo usando o loop forEach.
Arrays multidimensionais em Java
Até agora, vimos apenas matrizes unidimensionais. Java também oferece suporte a matrizes multidimensionais com elementos principalmente organizados em linhas e colunas. Os arrays em Java ficam mais complexos, pois cada elemento do array pode conter outro array.
Exploraremos arrays multidimensionais em Java junto com suas operações específicas aqui.
Vamos implementar um exemplo de uma matriz bidimensional.
class Main { public static void main(String args[]) { // declaring and initializing 2D array int array_2d[][] = { {1,2,3},{4,5,6},{7,8,9} }; System.out.println('The two-dimensional array is as follows:'); for (int i=0; i<3 ; i++) { for (int j=0; j < 3 ; j++) System.out.print(array_2d[i][j] + ' '); System.out.println(); } }
Resultado:
Array de objetos Java
Além de armazenar tipos primitivos, os arrays java também podem armazenar objetos. Neste tópico, exploraremos alguns exemplos de uma matriz de objetos.
Um exemplo é dado abaixo.
como abrir um arquivo .dat
class Main{ public static void main(String args[]){ Test testobj[] = new Test[2] ; testobj[0] = new Test(); testobj[1] = new Test(); testobj[0].setData(1,3); testobj[1].setData(2,4); System.out.println('For Array Element 0 (testobj[0]):'); testobj[0].displayData(); System.out.println('For Array Element 1 (testobj[1]):'); testobj[1].displayData(); } } class Test{ int val1; int val2; public void setData(int c,int d){ val1=c; val2=d; } public void displayData(){ System.out.print('val1 ='+val1 + '; val2 ='+val2 + '
'); } }
Resultado:
Podemos ter arrays contendo elementos como objetos. No programa acima, temos um array de objetos da classe Test. Chamamos individualmente funções-membro para cada objeto para definir e exibir os valores.
Retornar um array em Java
Da mesma forma, em que retornamos uma variável de qualquer método, podemos retornar um array também. Da mesma forma, podemos passar um array para um método. Ambas as possibilidades serão discutidas com exemplos aqui.
Normalmente, uma referência ao array é passada de / para um método.
O programa a seguir demonstra o retorno de um array em Java .
class Main { static int[] add_sub(int val1, int val2) { int[] result = new int[2]; result[0] = val1 + val2; result[1] = val1 - val2; return result; } public static void main(String[] args) { int[] result = add_sub(10, 5); System.out.println('val1 + val2 = ' + result[0]); System.out.println('val1 - val2 = ' + result[1]); } }
Resultado:
No programa acima, realizamos duas operações, ou seja, adição e subtração de dois números. O resultado de cada operação é armazenado como um elemento na matriz. Então, toda a referência da matriz é retornada à função de chamada.
Classe Array Java
A classe de array Java é uma classe do pacote java.util que fornece a funcionalidade para manipular arrays. Ele fornece muitas funções, como copiar uma matriz, classificar, converter uma matriz em string, etc.
Array Genérico Java
Já vimos genéricos em Java que são entidades independentes de tipo. Os arrays Java podem ser genéricos, podendo ser definidos como independentes de tipos. Mas o código genérico não está disponível quando o código de byte é gerado e, portanto, é difícil deduzir o tipo de elemento, a matriz será mantida em tempo de execução.
Portanto, em vez de arrays, mudamos para listas da estrutura de coleções Java sempre que os genéricos são necessários.
No entanto, também podemos ter uma estrutura de array semelhante ao genérico, empregando um ou mais métodos. Aqui, vamos explorar esses métodos.
Um exemplo de um dos métodos que usam matrizes de objetos é fornecido abaixo.
import java.util.Arrays; class Main { public static void main(String[] args) { final int length = 5; //integer array object from Generic_Array class Generic_ArrayintArray = new Generic_Array(length); for (int i = 0; i Resultado:
Portanto, no programa acima, escrevemos uma classe de array genérico com array de objetos como um elemento e métodos get / set para obter / setar objetos de array. Também substituímos o método toString da classe Arrays. Na classe Main, criamos dois objetos de uma classe de array genérica do tipo Integer e String e atribuímos a eles os valores apropriados.
Matrizes denteadas em Java
Matrizes denteadas são matrizes multidimensionais com cada matriz de membro de tamanhos diferentes. Uma matriz Jagged também é um exemplo de uma matriz de matrizes.
O programa a seguir mostra um exemplo da matriz Jagged.
class Main { public static void main(String[] args) { int jagged_array[][] = new int[2][]; jagged_array[0] = new int[4]; jagged_array[1] = new int[2]; for (int i=0; i Resultado:
Temos um array 2D no programa acima. A primeira dimensão da matriz é 4, enquanto a segunda é 2. A saída mostra o conteúdo de ambas as dimensões da matriz Jagged.
Arrays em Java 8
Como o Java 8 foi uma versão importante do Java, examinaremos as mudanças que ele trouxe aos arrays. Por exemplo, streams em Arrays foram introduzidos no Java 8.
Importar matriz em Java
Podemos incluir funcionalidade adicional para arrays em Java importando a classe ‘Arrays’ do pacote ‘java.util’.
Também podemos importar o pacote arrayutils para mais funcionalidades. Você deve ter adquirido mais conhecimento sobre a funcionalidade de importação de nossos exemplos anteriores.
API Java Array e documentação
A API do array Java é uma coleção de todas as funções que atuam nos arrays Java. Vamos examinar essa interface de programação de aplicativo (API) aqui.
Finalmente listamos todas as propriedades e métodos junto com suas descrições para matrizes Java. Isso ajudará os leitores com uma referência rápida.
perguntas frequentes
P # 1) Os arrays são tipos de dados primitivos em Java?
Responda: Não. Os arrays não são tipos de dados primitivos, mas os arrays são objetos de contêiner que contêm elementos do mesmo tipo de dados em locais contíguos.
P # 2) Os arrays são tipos de referência em Java?
Responda: sim. A matriz é um contêiner de objetos e é tratada como referências.
P # 3) Você pode aumentar o tamanho de um array em Java?
Responda: Não. Você declara arrays e cria uma instância com size. Depois de especificado, você não pode alterar o tamanho da matriz.
Conclusão
Neste tutorial, apresentamos a você o conceito de arrays em Java. Discutimos os principais tópicos associados aos arrays Java.
Em nossos tutoriais subsequentes, exploraremos esses tópicos relacionados a Array em Java em detalhes.
Aprendizagem feliz !!
Leitura recomendada
- DataTypes Java, Loops, Arrays, Switch e Assertions
- Exceções Java e tratamento de exceções com exemplos
- Tutorial Java Generics com exemplos
- Interface Java e tutorial de classe abstrata com exemplos
- Introdução à linguagem de programação Java - tutorial em vídeo
- Tutorial Java String com String Buffer e String Builder
- Tutorial JAVA para iniciantes: mais de 100 tutoriais práticos em vídeo Java
- Arrays multidimensionais e arrays irregulares em C #