[x]

  Conheça o Plugfeed | » Início » Programação » Java » Arrays em Java
Conheça o Plugfeed | » Início » Programação » Java » Arrays em Java -->
 
Avaliação: | Publicado em: 26/11/2006
Arrays em Java
Dayvid Lima Desenvolvedor Java há mais de 5 anos, atualmente consultor java em empresa multinacional utilizando recursos avançados da tecnologia J2EE com servidores de aplicação em plataforma Solaris para gerenciamento de redes e integração de sistemas.
Arrays em Java

Arrays são objetos que armazenam diversas variáveis do mesmo tipo. Eles podem conter variáveis de referência primitivas ou de objeto, mas o array propriamente dito sempre será um objeto da pilha, mesmo se for declarado para armazenar elementos primitivos. Em outras palavras, não existe algo como um array primitivo, mas você pode criar um array de elementos primitivos.

Array

Array de 10 elementos


Cada item em um array é chamado de elemento, e cada elemento é acessado pela posição numérica. Como na ilustração acima as posições são numerdas a partir do 0. O 9th elemento, por exemplo, é acessado na posição 8.

O programa a seguir cria um array de inteiros, atribui algumas posições a ele, e imprime cada valor à saída padrão.

class ArrayDemo {

     public static void main(String[] args) {

          int[] meuArray;              // declara um array de inteiros

          meuArray = new int[10];      // aloca a memória para 10 inteiros

          meuArray[0] = 100; // inicializa o primeiro elemento
          meuArray[1] = 200; // inicializa o segundo elemento
          meuArray[2] = 300; // etc.
          meuArray[3] = 400;
          meuArray[4] = 500;
          meuArray[5] = 600;
          meuArray[6] = 700;
          meuArray[7] = 800;
          meuArray[8] = 900;
          meuArray[9] = 1000;

          System.out.println("Elemento na posicao 0: " + meuArray[0]);
          System.out.println("Elemento na posicao 1: " + meuArray[1]);
          System.out.println("Elemento na posicao 2: " + meuArray[2]);
          System.out.println("Elemento na posicao 3: " + meuArray[3]);
          System.out.println("Elemento na posicao 4: " + meuArray[4]);
          System.out.println("Elemento na posicao 5: " + meuArray[5]);
          System.out.println("Elemento na posicao 6: " + meuArray[6]);
          System.out.println("Elemento na posicao 7: " + meuArray[7]);
          System.out.println("Elemento na posicao 8: " + meuArray[8]);
          System.out.println("Elemento na posicao 9: " + meuArray[9]);
     }
}

A saída desse programa é:

Elemento na posicao 0: 100
Elemento na posicao 1: 200
Elemento na posicao 2: 300
Elemento na posicao 3: 400
Elemento na posicao 4: 500
Elemento na posicao 5: 600
Elemento na posicao 6: 700
Elemento na posicao 7: 800
Elemento na posicao 8: 900
Elemento na posicao 9: 1000


Em uma situação de programação real, você provavelmente utilizaria umas das construções fazendo loopings (laços) para preencher o seu array, pois seria melhor do que escrever cada linha individualmente como mostrado acima. Entretanto, este exemplo ilustra claramente a sintaxe da disposição.


Declarando um array

O programa acima declara meuArray com a seguinte linha de código:

          int[] meuArray;              // declara um array de inteiros

Como declarações para variáveis de outros tipos, uma declaração de array tem dos componentes: o tipo do array e o nome do array. O tipo de um array é escrito como tipo[], onde tipo é o tipo de dados dos elementos contidos no array; os colchetes são caracteres especiais que indicam que essa variável na verdade é um array.

Como com as variáveis de outros tipos, a declaração não cria realmente o array - diz simplesmente ao compilador que esta variável terá um array do tipo especificado.

Do mesmo modo você pode declarar arrays de outros tipos:

          byte[] meuArrayDeBytes;
          short[] meuArrayDeShorts;
          long[] meuArrayDeLongs;
          float[] meuArrayDeFloats;
          double[] meuArrayDeDoubles;
          boolean[] meuArrayDeBooleans;
          char[] meuArrayDeChars;
          String[] meuArrayDeStrings;

Você também pode colocar os colchetes após o nome do array:
          float meuArrayDeFloats[]; // forma menos utilizada

Essa forma é menos utilizada, pois com os colchetes antes do nome do array fica mais fácil entender de que se trata de um array.


Criando, inicializando, e acessando um Array

Uma das formas de se criar um array é utilizando o operador new. A declaração seguinte no programa ArrayDemo, aloca um array com memória para dez elementos do tipo inteiro e atribui o array à variável meuArray.

          meuArray  = new int[10];  // cria um array de inteiros

Se esta declaração faltasse, o compilador imprimiria um erro como o seguinte, e a compilação falharia:

          ArrayDemo.java:9: variable meuArray might not have been initialized

As próximas linhas atribuem valores para cada elemento do array:
          meuArray[0] = 100; // inicializa o primeiro elemento
          meuArray[1] = 200; // inicializa o segundo elemento
          meuArray[2] = 300; // etc.

Cada elemento do array é acessado por seu índice numérico:
          System.out.println("Elemento na posicao 0: " + meuArray[0]);
          System.out.println("Elemento na posicao 1: " + meuArray[1]);
          System.out.println("Elemento na posicao 2: " + meuArray[2]);

Alternativamente, você pode usar atalhos de sintaxe para criar e inicializar um array:
          int[] meuArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};

Aqui o tamanho do array é determinado pelo número de valores informados entre { e }.

Você também pode declarar um array de arrays (também conhecido como array multidimensional), utilizando dois ou mais conjuntos de colchetes [][]. Cada elemento, deve conseqüentemente ser alcançado por um número correspondente de valores de índice.

Na linguagem de programação de Java, um array multidimensional é simplesmente um array cujos os elementos são outros arrays.

Um exemplo de array multidimensional seria:

class ArrayMultiDemo {

    public static void main(String[] args) {

        String[][] nomes = {{"Mr. ", "Mrs. ", "Ms. "},{"Smith", "Jones"}};

        System.out.println(nomes[0][0] + nomes[1][0]); //Mr. Smith
        System.out.println(nomes[0][2] + nomes[1][1]); //Ms. Jones

    }
}

A saída desse programa é:
Mr. Smith
Ms. Jones

Por fim, você pode utilizar a propriedade length para determinar o tamanho de um array. O código

          System.out.println (meuArray.length);

imprimirá o tamanho do array meuArray.


Espero que tenham gostado do artigo, até o próximo!
Dayvid

Links relacionados

Algusto Barros <abarros@uol.com.br>
Show de bola esse tutorial, espero poder contar com mais informações desse tipo, está bem claro e facil de entender.
Obrigado.
Aeeeeeeeeee DW uhuuuuuuu
Parabéns pelo artigo...muito bom e muito explicativo...

Ficarei aguardando os próximos....

At. Hebert
Mesmo sendo principiante nesta linguagem, acho um artigo exceptional.
Parabéns meu caro.. gostei bastante da tua coluna!!
Dayvid Lima
Obrigado a todos pelos comentários e apoio.
Grande abraço,
Dayvid
UserJAVASUNTUTORIALS <JAVASUNTUTORIALS@ARRAYS.COM.BR>
Muito bom. Para quem quiser ver a versão original, basta entrar no link: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html
Parabéns!!

O tutorial está muito claro e permite a iniciantes como eu, entender como se faz.

continua assim.
Me envie o assunto Arrays Irregulares para o meu email.Este site é super bacana

Muito bom, parabéns. Estou iniciando em JAVA para atender a demanda de uma ferramenta de comunicação e achei fácil e muito bem explicado. Só não achei algo sobre a contagem de items de uma array. Tipo array.length ou count(array)... como funciona isso em JAVA ?
Dayvid Lima
Olá Bruno, obrigado pelos elogios! Quanto a sua dúvida, veja no final do artigo que para verificar a quantidade de itens em um array você utiliza o método "length", veja um exemplo:

System.out.println(meuArray.length);

Isso faz com que imprima a quantidade de itens no array "meuArray".

Lys Marie Santana dos Santos <lysmarie17@hotmail.com>
Está muito bem explicado. Tinha algumas dúvidas sobre a criação, utilização e acesso de arrays que foram completamente sanadas.
Muito Obrigada e Sucesso!!
Vanessa <vsc24@ig.com.br>
Achei muito clara a explicação. Estava com muita dificuldade em no livro. Neste tutorial entendi o assunto em segundos.
Edmilson Junior <juniorcbd@hotmail.com>
Adorei o blog, muito explicativas as matérias e muito interessantes, com certeza irão me ajudar no meu início de aprendizagem da linguagem. Mas até que vídeo aulas seriam ótimos incrementos para as suas postagens. Obrigado!
adorei,curto simples de entender...deveria ter mais tutoriais desse estilo.
Juner Madrassi <jum5@dcs.qmul.ac.uk>
Adorei o artigo, muito util a me ajudou bastante com os meus estudos.
Valeu
hehe chuchu blz!
simples e objetivo, ficou bom pra tirar as duvidas.

vlw
Maria Pereira <mcapucho@hotnail.com>
Muito obrigada, estou a iniciar-me no Java, não está a ser fácil, mas percebi claramente tudo o que está explicado! Protugal
José Paiva Soares <jjppsoares@ajato.com.br>
Muito bom.
Parabeéms.
Caramba, admiro pessoas que disponibilizam matérias gratuitamentes para as pessoas que tem dificuldades. E essa mesmo está muito bem elaborada. Parabéns.
Adorei o artigo, muito bem explicado e fácio de entender. Parabéns!
GUSTAVO
MANCHESTER UNITED!!!!!!!!!!!!

CHAMPIONS 2008!!!

FUCK CHELSEA!!!!
FUCK ARSENAL!!!
FUCK LIVERPOOL!!!
Alo bom dia
gostaria que me ajudasse a corrigir os erros do programa

a class Livro acabei colocando como abstract porque assim o pedia,mas a prncipio nao o obti como abstract

a class Testeabstract é que tem os erros
tenho as 3 classes pra gravar em 3 fixeiros: Publicacoes, Livro e Testeabstract

//publicacoes
public abstract class Publicacoes
{
public abstract String nome();
public abstract void mostra();
public abstract void introduzDados();

}
//Livro
import javax.swing.;
import java.util.;

public abstract class Livro extends Publicacoes
{
private String nome;
private String autor;

public void mostra()
{
System.out.println("O nome e"nome" o Autor e"autor);
}

public void introduzDados()
{
String str=JOptionPane.showInputDialog("Introduz o nome do Livro");
nome=str;
String st=JOptionPane.showInputDialog("O nome do Autor");
autor=st;
}

public abstract class Revista extends Publicacoes
{
private String nome;
private int numero;
public void mostra()
{
System.out.println("O nome e"nome" o Autor e"autor);
System.out.println("O nome da revista:"nome"O numero da revista e "numero);
}
}
}

//TesteAbstract
import java.util.;
import javax.swing.;
public class TesteAbstract
{
public static void main(Stringargs)
{
Livro e=new Livro();
int opcao;
Revista r=new Revista();
System.out.println("Menu");
System.out.println("Introduz 1 para Livro ou 2 pra Revista");
switch(opcao)
{
case 1: e.introduzDados();
e.mostrar();

case 2: r.introduzDados();
r.mostrar();

default: System.out.println("precione 1 ou 2");
}
}
}
Observacao
nao apareceram os parenteses Rectos ""entre o String e Args
"public static void main(Stringargs)"
o artigo esta excelente, pude eliminar as minhas duvidas
obrigado
muito bom o artigo
espero ver mais...
obrigado
oi Pessoal
peço pra me enviarem programas em Dev-C, de diversas caracteristicas: exemplos: sobre derivacao de classes,arrays, vectores, funcoes,implementacoes,etc tudo que poderer

Tou dando a cadeira e ainda nao tou pegando bem a linguagem
Agradecia que alguem me corrigisse o seguinte programa feito em Dev-C

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char argv)
{
struct filme{
string titulo;
int ano;
}
meu,seu;
void imprimefilme(filme f);
int main()
{string s;
meu.titulo="Aemrican Gangster";
meu.ano="2007";
cout<<"Introduza o Titulo";
getline (cin,seu.titulo);
cout<<"Introduza o ano";
getline(cine,S);
StringStream(S)>>seu.ano;
cout<<Meu filme favorito é:n";
imprime filme(meu);
cout<<"E o seu é:n;
imprime filme(seu);
return 0;
}
void imprimeFilme(filme f)
{cout<<f.titulo;
cout<<("<<f.ano<<")n";
}
system("PAUSE");
return EXIT_SUCCESS;
}
Rodrigo Cavaleiro <r.cavaleiro@bol.com.br>
Finalmente eu entendi o que é ARRAY !
Vou começar a usa-lo.
Agora, poderia ter dado mais 1 exemplo e falado um pouco mais de array multidimensional.
Como total leigo, fico feliz por ter feito este post.
Caso tenha mais algum, r.cavaleiro@bol.com.br

OBRIGADOOOO !!!
Wallace <twubas@gmail.com>
Muito bom mesmo!
Parabens Dayvid!!
Anísio F. de Souza <rranisio@yahoo.com.br>
Explicação excelente, muito clara. Melhor do que em diversos livros que li, valeu.


ADOREI
Wagner Pompeo <wag_pompeo@yahoo.com.br>
Muito bom esse tutorial, estava com algumas duvidas sobre arrays, me ajudou bastante parabéns.
Poxa, muito bom, esclareceu muito, ajudou bastante, parabens
Raphael Krauss <krauss_grupo@gmail.com>
Excelente artigo! Esclareceu todas as minhas duvidas de forma clara e objetiva. Muito Obrigado pela ajuda!
Emanuel Moura <emanuelneto92@hotmail.com>
Excelente texto, muito bem elaborado e de facil acesso.
Copy/Paste da Sun








Um produto Detetive.net | Cursos online