Buscar

04 - Java Vetores e Listas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 1/11
 
 
 
 
 
 
 
 
 
Java – Vetores e Listas
 
 
 
 
Rômulo Ferreira Douro
SIN2
Sumário
1 Vetores
1.1 Declaração e instanciação
1.2 Outras formas de declaração
1.3 Acessando e alterando um elemento do vetor
1.3.1 Percorrendo um vetor
1.4 Alguns erros
2 Listas
2.1 Definição
2.1.1 LinkedList
2.1.2 ArrayList
03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 2/11
2.2 Criando listas
2.3 Métodos importantes
2.3.1 Adicionando elementos
2.3.2 Obtendo a quantidade de elementos
2.3.3 Recuperando elementos
2.3.4 Percorrento uma lista
2.3.5 Alterando elementos
2.3.6 Excluindo elementos
2.4 Atenção
2.5 Documentação e código
 
1 Vetores
Um array ou “vetor” é a forma mais comum de dados estruturados
da linguagem Java. Um array é simplesmente um conjunto de
variáveis do mesmo tipo, igualmente acessíveis por um índice
→ Um vetor é um array com uma dimensão
O vetor é uma estrutura capaz de armazenar vários dados TODOS
DO MESMO TIPO. Ao declarar o vetor, seu tipo já é definido. Logo,
o vetor é uma estrutura de dados homogênea.
Os vetores consistem de posições contínuas de memória, e seus
elementos são acessados por meio de um índice. O índice mais
baixo corresponde ao primeiro elemento e o mais alto ao último
elemento.
1.1 Declaração e instanciação
Um vetor é um objeto e todo objeto, para ser usado, precisa ser
declarado e instanciado (criado).
Na declaração não é necessário atribuir o tamanho do vetor.
Exemplo
 //declaração do vetor
 int[] array;
 //instanciação do vetor
 array = new int[10];
 
Na instanciação usa-se a palavra reservada ‘new’, esse é o
procedimento executado sempre que se faz a criação de um objeto.
03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 3/11
É possível declarar e construir o array na mesma linha
//declaração e instanciação do vetor
int[] array = new int[10];
Uma vez declarado o tamanho de um vetor, ele não pode mais ser
alterado. A capacidade de armazenamento do vetor é dada pelo
número entr os colchetes (é SEMPRE um valor inteiro).
O tamanho de um vetor é determinado em sua criação, antes da
execução do programa. Isto significa que o tamanho de um vetor
NÃO poderá ser alterado durante a execução do programa.
Exemplo: Declarar um vetor de 100 elementos, chamado pontos, e
do tipo int
int[] pontos = new int[100];
 
Em uma exemplificação, haveria em memória, espaços subjascentes
em que se poderiam armazenar 100 números inteiros como a
imagem a seguir
 
 
Na primeira linha, os números representam os índices do vetor (a
forma de acesso a cada elemento de um vetor se dá através do seu
índice).
Quando arrays de tipos primitivos do java são inicializados, os
elementos automaticamente recebem os valores default que no caso
de tipos numéricos é zero.
O índice inicial de todo vetor é sempre 0 (zero).
O índice final é sempre o tamanho do vetor menos 1 (tam – 1), ou
seja, neste caso é 99.
Em resumo: Um array é um agrupamento de dados adjacentes na
memória.
Exemplo
 public static void main(String[] args) {
 //declaração e instanciação do vetor
 //com 10 posições
 //todas são inicializadas com 0 (zero)
 int[] idades = new int[10];
 //altera o valor na posição 2 para 54
 idades[2] = 54;
 }
03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 4/11
 
Situação do vetor ao final da execução:
 
 
Todo vetor em Java possui a propriedade ‘length’ que retorna o
tamanho do vetor.
Exemplo
 int vetor[] = new int[5];
 //aqui irá imprimir 5
 System.out.println(vetor.length);
 
1.2 Outras formas de declaração
Em Java também existe a possibilidade de definir os valores de um
array no momento de sua criação.
Exemplo
 //cria um vetor chamado vet1 com 3 posições
 //já preenchidas com os elementos 1, 2 e 3
 int vet1[] = {1, 2, 3};
 //cria um vetor chamado vet1 com 3 posições
 //já preenchidas com os elementos 1, 2 e 3
 int vet2[] = new int[]{1, 2, 3};
 
Outros exemplos
 /*
 Declara um vetor de float de 30 posições
 Índice inicial = 0
 Índice final = 29
 */
 float[] dados = new float[30];
 /*
 Declara um vetor de caracteres de 18 posições
 Índice inicial = 0
 Índice final = 17
 */
 char[] nome = new char[18];
03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 5/11
 /*
 Declara um vetor de inteiros de n posições
 Índice inicial = 0
 Índice final = n – 1
 */
 int n = 10;
 int[] media = new int[n];
 /*
 Declara um vetor de double de 3*x posições
 Índice inicial = 0
 Índice final = 3*x – 1
 */
 double[] vet = new double[3 * n];
 
1.3 Acessando e alterando um elemento do vetor
Para acessar um elemento em um vetor precisamos do seu literal
(nome da variável declarada como vetor) e a posição do elemento
(respeitando os limites do vetor).
A alteração é feita de maneira simples usando atribuição.
Exemplo
 int[] idades = new int[10];
 //altera o valor na posição 2 para 54
 idades[2] = 54;
 //recupera o valor na posição 1 do vetor de idades
 //atribui à variável idade1
 int idade1 = idades[1];
 //imprime o valor
 System.out.println(idade1);
 
Outros exemplos
 int vet2[] = new int[]{1, 2, 3};
 int idx=0;
 //O índice idx+1 do vetor recebe o valor armazenado no índice 2
 vet2[idx + 1] = vet2[2];
 //incrementa o valor que está na posição 0 do vetor
 vet2[0]++;
 //decrementa o valor que está na posição 1 do vetor
 --vet2[1];
 //efetua verificação com elemento do vetor
03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 6/11
 if(vet2[0]>0){
 System.out.println("positivo");
 }
 
1.3.1 Percorrendo um vetor
Para percorrer um vetor geralmente usa-se a propriedade length
como critério de parada em alguma estrutura de repetição.
Exemplo:
 int vet1[] = {1, 2, 3};
 //imprime os valores do vetor
 for(int i=0; i<vet1.length; i++){
 System.out.println(vet1[i]);
 }
 
1.4 Alguns erros
 public static void main(String[] args) {
 float[] sequencia = new float[25];
 sequencia[0] = 0; //Correto (int em float)
 sequencia[1] = 1.4; //Errado (falta f) tipo diferente
 sequencia[1.5] = 1; //Errado (indice deve ser inteiro)
 sequencia[-1] = -1; //Errado (indice negativo)*
 sequencia[23] = "23"; //Errado (String!!) tipo diferente
 sequencia[24] = 24; //Correto!
 sequencia[25] = 25; //Errado (indice >=25)*
 }
 
Para fixar!
 
2 Listas
Em java temos objetos que nos auxiliam a trabalhar com estruturas
de dados tais como ArrayList e LinkedList. Ambos possuem métodos
03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 7/11
propícios para armazenar, atualizar, excluir, recuperar e, em alguns
casos, ordenar os dados inseridos nessas estruturas.
Veremos aqui uma breve introdução de como usar tais objetos – não
iremos abordar por completo todas as possibilidades de uso de tais
componentes, isso é tarefa de pesquisa.
2.1 Definição
2.1.1 LinkedList
Um objeto java do tipo LinkedList é uma estrutura de dados para
armazenamento de elementos baseada no conceito de lista
encadeada onde os elementos nela armazenados são organizados
com ligações entre os mesmos – internamente usa uma lista
duplamente encadeada para organização dos dados1.
 
 
2.1.2 ArrayList
Um objeto java do tipo ArrayList é uma estrutura de dados para
armazenamento de elementos baseada no conceito de array onde
os elementos nela armazenados são organizados sequencialmente
num vetor – internamente usa um array de tamanhovariável2 para
organização dos dados.
 
2.2 Criando listas
Para criar uma lista (assim como qualquer objeto em java) deve ser
usada a palavra reservada new seguido do construtor do referido
objeto.
O construtor de um objeto é um método especial que leva o nome da
classe, no caso LinkedList ou ArrayList.
Exemplo
import java.util.ArrayList;
import java.util.LinkedList;
public class ExemploListas01 {
 public static void main(String[] args) {
 //cria um objeto do tipo LinkedList
 LinkedList LL = new LinkedList();
 //cria um objeto do tipo ArrayList
 ArrayList AL = new ArrayList();
 
03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 8/11
 //ao lado direito de cada atribuição temos a
 //execução do método construtor para o objeto
 }
}
 
Uma observação importante está ligada ao fato de podermos
restringir o tipo de elemento que iremos armazenar nas listas usando
um conceito chamado Generic.
Exemplo
import java.util.ArrayList;
public class ExemploListas01 {
 public static void main(String[] args) {
 //cria um objeto do tipo ArrayList
 //que só pode armazenar objetos do tipo String
 //ou seja, só pode armazenar palavras
 ArrayList<String> AL = new ArrayList();
 }
}
 
Com os objetos devidamente criados podemos utilizá-los para os
seus propósitos, os quais, veremos alguns adiante.
2.3 Métodos importantes
Nas próximas seções serão mostrados alguns métodos importantes
para a utilização de listas em Java.
2.3.1 Adicionando elementos
O método add é usado para adicionar elementos a uma lista.
Exemplo
import java.util.ArrayList;
public class ExemploListas01 {
 public static void main(String[] args) {
 //cria um objeto do tipo ArrayList
 //que só pode armazenar objetos do tipo String
 //ou seja, só pode armazenar palavras
 ArrayList<String> AL = new ArrayList();
 //adiciona a String "joey ramone"
 AL.add("joey ramone");
 //adiciona a String "joan jett"
 AL.add("joan jett");
 }
}
03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 9/11
 
2.3.2 Obtendo a quantidade de elementos
O método size retorna a quantidade de elementos inseridos na lista
até o presente momento.
Exemplo
 //retorna a quantidade de elementos armazenados na lista
 int quantidade = AL.size();
 System.out.println(quantidade);
 
2.3.3 Recuperando elementos
Para recuperar um elemento de uma lista usamos o método get que
recebe como parâmetro o índice do elemento. A indexação de
elementos é iniciada em 0 (zero) e termina com a quantidade de
elementos inseridos – 1 (lembrando que essa quantidade pode
variar pois pode-se inserir e remover elementos ‘à vontade’.
Exemplo
 //recupera o valor armazenado na posição 0
 String nome = AL.get(0);
 System.out.println(nome);
 
2.3.4 Percorrento uma lista
Para percorrer uma lista podemos usar uma estrutura de repetição
qualquer em conjunto com a quantidade de elementos na lista (dado
pelo método size).
Exemplo
 //mostra todos os elementos da lista
 for (int i = 0; i < AL.size(); i++) {
 System.out.println(AL.get(i));
 }
 
Uma outra forma é percorrer a lista usando o conceito de for-each
(ou enhanced for). Esse método se vale do uso de uma variável
auxiliar que deve ser do mesmo tipo declarado para os elementos da
lista.
Exemplo
 //mostra todos os elementos da lista
03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 10/11
 //a variável auxiliar nesse exemplo é do tipo String
 //pois os elementos da lista são String
 for(String auxiliar : AL){
 System.out.println(auxiliar);
 }
 
2.3.5 Alterando elementos
O método set é usado para alterar um elemento da lista. Ele recebe
um índice de posição onde deve ser alterado o elemento e um novo
valor que será inserido nessa posição.
Exemplo
 //altera o elemento da posição 0
 AL.set(0, "angus young");
 
2.3.6 Excluindo elementos
Para remover elementos precisamos executar o método remove, o
qual deve receber como parâmetro o índice do elemento que será
removido.
Exemplo
 //remove o elemento da posição 0
 AL.remove(0);
 
2.4 Atenção
Toda execução de métodos deve estar correlacionada aos limites da
lista.
Você nunca deve acessar um índice negativo ou superior ao
tamanho da lista (size - 1).
Você deve respeitar os tipos declarados associados à lista.
Uma lista nula não existe – então você não pode fazer nada com ela
antes de criá-la (método new).
Uma lista vazia não tem elementos (size == 0).
Erros primários podem (e irão) ocorrer. Respire fundo, mantenha a
calma, encontre a causa e solucione!
 
03/10/2020 - no title specified
moodlep.ucv.edu.br/moodle/pluginfile.php/353969/mod_resource/content/0/04 - Java - Vetores e Listas.html 11/11
•
◦
▪
◦
▪
•
◦
▪
◦
▪
2.5 Documentação e código
A documentação oficial e o código fonte da implementação OJDK
pode ser obtido facilmente nos locais listados a seguir:
LinkedList 
Documentação Oficial 
https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html 
Código fonte 
http://www.docjar.com/html/api/java/util/LinkedList.java.html 
ArrayList 
Documentação Oficial 
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html 
Código fonte 
http://www.docjar.com/html/api/java/util/ArrayList.java.html 
 
 
 
 
 
1 Esquema de lista dulplamente encadeada. Fonte:
https://pt.wikipedia.org/wiki/Lista_duplamente_ligada
2 O tamanho varia através de programação!
https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html
http://www.docjar.com/html/api/java/util/LinkedList.java.html
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
http://www.docjar.com/html/api/java/util/ArrayList.java.html

Continue navegando