Principais Pacotes e Coleções

Slides:



Advertisements
Apresentações semelhantes
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Advertisements

Introdução à Programação Um enfoque orientado a construção de modelos em programas baseados em objetos Gustavo Motta Departamento de Informática - UFPB.
Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008.
Perspectivas baseadas em procedimentos e orientadas por objectos Conceitos principais: Encapsulamento, Herança, Polimorfismo (Encapsulation, Hierarchy,
Java: Pacotes e Modificadores de Visibilidade
Java: Pacotes e Modificadores de Visibilidade

Eduardo Bezerra Padrões GoF Eduardo Bezerra
Rafael Pinto Frederico Corrêa
Walfredo Cirne walfredo.dsc.ufpb.br
Hibernate Apresentação
Estrutura de Dados em Java
Tecnologias para Internet
Capítulo 6 Arrays & Clusters. Uma array é uma lista de informações indexadas todas do mesmo tipo. Ela pode ter no máximo ((2exp31)) -1 elementos por dimensão.
Capítulo 10 Strings & File I/O. Strings Strings são um conjunto de Caracteres ASCII. No Controle de Instrumentação pode-se converter valores numéricos.
O.NET introduziu um forma orientada a objetos de trabalhar com arquivos. O namespace System.IO fornece diversas classes para trabalhar com arquivos textos,
Linguagem de Programação JAVA
Curso de extensão em Desenvolvimento Web
Monitores.
Concorrência em Java Threads em Java.
Aula prática 6 Vetores e Matrizes
PHP Tipos de dados Constantes.
Linguagem de Programação II Parte VII
CADEIA DE CARACTERES (Strings)
Rodrigo Cristiano Silva
Programação I Aula 2 (Métodos)
Linguagem de Programação JAVA
Os métodos equals() e hashCode()
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Programação Orientada à Objetos
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Classes e Objetos em Java.
Módulo I Capítulo 5: Vetores
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Listas.
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Programação Orientada à Objetos
Aula Prática 4 Monitoria IP/CC (~if669).
Linguagem de Programação II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Funções Matemáticas e de String
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
Acabias Marques Luiz. I - Introdução ao Ruby Parte 1 – Introdução a linguagem  O que é Ruby  Instalação  O IRB  Operadores Aritméticos  Tipos de.
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Linguagem I Strings.
Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes
Módulo 9 Strings , Coleções e I/O
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Faculdade Pernambucana - FAPE Setembro/2007
Coleções em Java - Parte 2
Fundamentos de linguagens de programação
Bruno Inojosa MCP.NET Framework.NET com C#. Orientação a Objeto parte II.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
POO - I PROF.: JEAN CARLO MENDES
Introdução à Programação
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
 A linguagem Java tem diversas classes para a manipulação dos conjuntos de dados. Esses dados podem ser organizados de duas maneiras diferentes: ◦ Vetores.
Estruturas de Dados Murilo Salgado Razoli.
Módulo II Capítulo 1: Orientação a Objetos
Coleções em Java (Parte 1)
Array e ArrayList LPOO – 01/09/14.
Classificação (Ordenação) de dados
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
Java Como Programar, 8/E Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1.
Capítulo 4. Conjuntos  Introdução  Principais operações de conjuntos  Principais interfaces de conjuntos  A interface Collection  A interface Iterator.
Questionário (Básico) Autor: Skyup Informática. Atividade - Questionário O módulo permite criar uma série de questões, que deverão ser respondida pelos.
Minicurso Java Básico Ruddá Beltrão | Cristian Costa.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Aplicativos para Web Collections Prof. Odair
Transcrição da apresentação:

Principais Pacotes e Coleções Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Março/ 2015 1

Pacotes em Java O que são pacotes? Um pacote (package) em Java é um diretório em que está armazenada uma ou mais classes Para usar uma classe de um pacote se usa a palavra reservada import Exemplo: import java.util.Vector import java.util.* A diferença do primeiro comando pelo segundo é que podemos utilizar uma classe específica (Date) no primeiro No segundo caso o * significa que podemos utilizar todas as classes que estiverem no pacote

O pacote java.lang Por padrão o pacote java.lang é importado automaticamente pelo Java Nele estão as classes que representam os tipos primitivos: Integer, Float, Boolean, Byte, Caracter, String, Math, Object, System, Thread, entre outros Strings em Java são representadas pela classe java.lang.String Na classe das strings existem diversos métodos que podem manipulá-las de diversas maneiras

java.lang.String Exemplos de métodos: lenght() charAt() toUpperCase() e toLowerCase() substring() trim() replace() string.valueOf() split() equals()

java.lang.Math Essa classe contém diversos métodos para lidar com diferentes tipos de cálculos matemáticos Exemplos de métodos: min() e max() random()

Classes Wrapper São as classes que representam os tipos primitivos: Integer, Double, Byte, etc Essas classes contém diversos métodos para manipular os respecitos tipos Suas funções mais utilizadas são: parseInt(), parseDouble(), etc toString()

O pacote java.util Nesse pacote existem uma série de classes úteis Uma exemplo é a classe Calendar, para lidar com datas, a classe ArrayList e Vector, para lidar com listas, as classes Formatter, Scanner, Stack, Timer, entre outras.

Coleções Coleções (estruturas de dados) são encontradas em qualquer linguagem de programação e em Java as coleções recebem um tratamento especial O framework “Collections” surgiu com a intenção de formar uma arquitetura unificada para representação e manipulação de coleções. Esse framework é o conjunto de implementações (classes e interfaces) oferecidas no pacote java.util que fornecem as principais funcionalidades esperadas quando trabalha-se com conjuntos de elementos (coleções).

Coleções O uso de coleções facilitam a vida do programador do Java porque diferente de outras linguagens como o C, ele já conta todas funcionalidades implementadas, ou seja, o programado não precisa fazer a sua própria Lista, Fila ou Árvore. Ao utilizarmos as coleções já implementadas obtemos os seguintes benefícios: ✔ Redução na codificação: Muitas funcionalidades esperadas durante a manipulação de um conjunto de elementos já estão prontas; ✔ Melhor desempenho do programa: As implementações das uncionalidades e estruturas de armazenamento foram feitas com o objetivo de fornecerem um desempenho ótimo; ✔ Maior qualidade do programa: Respeitando as interfaces podemos substituir as implementações utilizadas sem prejuízo ao resto doprograma;

Coleções Arquitetura:

Coleções Nesta figura temos as interfaces (raízes e nós das árvores) que formam o conjunto de interfaces disponíveis. Nas folhas (retângulos com bordas mais espessas) encontramos as classes concretas ou implementações destas interfaces. Esta arquitetura de interfaces forma o núcleo do Java Framework Collections e todas as classes concretas irão derivar de uma ou mais interfaces. É interessante notar que apesar da “arquitetura única” as coleções derivadas da interface Map não implementam a interface Collection no entanto elas também fazem parte do pacote de implementações Java para coleções. A figura apresentada pode ser interpretada da seguinte forma: “Um Set, List ou Queue é um tipo de Collection, cada um com suas particularidades. Já um Map não é do mesmo tipo dos demais mas também manipula coleções de elementos”

Coleções Set: Representa uma coleção que não pode conter duplicatas, implementa uma abstração dos conjuntos matemáticos; List: Representa uma coleção ordenada (ordem de inserção) e que permite duplicatas; Queue: Parecida com a interface List porém adiciona algumas funcionalidades, é muito utilizada para representar listas de elementos cuja ordem é importante, normalmente elementos em ordem de processamento; Map: É um objeto que armazena um elemento e o remove através da sua chave, os Maps não aceitam chaves duplicadas.

Coleções Algumas definições: Ordenação: Define que a coleção possui algum tipo de ordem determinada por regra(s). Ex: Crescente, decrescente, prioridade e etc. Organização: Garante que a coleção sempre é percorrida em uma determinada seqüência não aleatória. Ex: Ordem de inserção, índice e etc.

List A interface List garante que todas as suas implementações serão organizadas, isto é, a ordem de inserção será mantida e são permitidas duplicatas, isto é, objetos iguais de acordo com o método equals(). Ao contrário do Set, qualquer implementação da interface List mantém seus elementos indexados, ou seja, existe uma preocupação com o posicionamento de cada elemento e esta posição é determinada pelo índice. Devemos utilizar um List quando a ordem de inserção ou a posição na coleção nos interessa

List Alguns métodos importantes quando manipulamos Lists:

ArrayList e Vector Um ArrayList pode ser visto como um vetor (array) porém dinâmico, isto é, ele aumenta o espaço disponível a medida que é demandado. Ele é organizado pelo índice, ou seja, temos alguma garantia quanto a ordem que encontraremos os elementos. Vector é basicamente um ArrayList, no entanto seus métodos são sincronizados o que significa que o acesso por vários processos simultaneamente é coordenado. Antes de continuarmos falando das implementações da interface List, iremos introduzir uma nova característica da linguagem Java e mostrar trechos de códigos que a utilizam junto com ArrayList e Vector: Generics: É uma funcionalidade introduzida a partir da versão 1.5 do Java. Em relação as coleções sua principal característica é definir o tipo aceito pela coleção;

ArrayList e Vector Até agora as nossas coleções aceitavam qualquer tipo de elemento, desde que fosse um Object, por exemplo, abaixo temos um ArrayList onde adicionamos uma String e um Integer: Isto era possível pois nossas coleções aceitam qualquer elemento que seja do tipo Object, e todas as classes criadas em Java automaticamente herdam, e portanto são, da classe Object.

ArrayList e Vector No entanto, com o uso de Generics podemos definir de que tipo específico será a nossa coleção. Abaixo temos um exemplo de ArrayList, parecido com o anterior, utilizando Generics: Perceba que a partir de agora este List aceita apenas objetos do tipo Integer utilizando esta notação, declaração <Integer> junto a declaração da Classe/Interface, evito que sejam inseridos indevidamente outros tipos que não sejam Integer na minha coleção

Queue A última das interfaces a ser analisada, a interface Queue é projetada para armazenar listas de elementos a serem executados/processados. Os elementos inseridos em uma coleção que implemente esta interface, normalmente, possuirá comportamento similar a uma Fila, isto é, o primeiro elemento a ser inserido será o primeiro elemento a ser processado.

Queue Os métodos comumente utilizados com esta coleção são os seguintes:

A classe Collections Da mesma forma que para vetores, Java fornece uma classe com um conjunto de funcionalidades muito utilizadas (ordenação, pesquisa, preenchimento e etc.) na manipulação das estruturas de dados do Framework Collections também existe uma classe similar Algumas funcionalidades úteis: Ordenação Mistura/ Desordenação Pesquisa Entre outras: reverse, fill, swap, addAll, frequency, disjoint.

A classe Collections Ordenação O algoritmo de ordenação implementado na classe Collections ordena os elementos em ordem ascendente.

A classe Collections Mistura/Desordenação Este algoritmo é o oposto ao anterior, ao invés de ordenar ele desordena (mistura) os elementos dentro de um List. A primeira vista pode parecer pouco útil, mas existem situações onde você irá querer desordenar sua estrutura de dados para obter um elemento aleatoriamente. Por exemplo, abaixo temos uma possível implementação para a modalidade de sorteio cujos nomes dos elementos a serem sorteados, normalmente pessoas, são escritos em pequenos pedaços de papéis e o primeiro a ser escolhido é o vencedor.

A classe Collections Mistura/Desordenação

A classe Collections Pesquisa Quando falamos em estruturas de dados obrigatoriamente devemos pensar em algoritmos de ordenação e pesquisa, pois, de que adianta uma estrutura de dados cujos elementos não conseguimos localizar? Ao manipularmos estruturas de dados sempre devemos ter em mente que iremos ordená- las ou pesquisá-las. Por isto a importância deste algoritmo. A pesquisa efetuada pela Classe Collections retorna um número inteiro positivo ou zero se o elemento for encontrado e negativo se o elemento não existe na coleção. Quando o elemento existe na coleção o número representa o seu índice (posição), por outro lado, quando o elemento não existe, o número, em módulo, representa a posição que ele deveria estar (ponto de inserção), neste caso, esta posição somente é válida se a coleção estiver ordenada antes da pesquisa.

A classe Collections Pesquisa

Referência Curso Java Starter Disponível gratuitamente em: http://t2ti.com/curso/video/java/basico/java_starter.php Programação em Java – Uma introdução Abrangente Shildt, H., Skrien, D Programação com Java Hubbard. H