Este é um post disponível para assinantes MVPArtigo Java Magazine 43 - Coleções em Ordem
Artigo publicado pela Java Magazine 43.

Coleções em Ordem
Gerenciando e ordenando dados na camada de objetos
Desenvolva uma aplicação web fazendo uso dos recursos de ordenação de objetos oferecidos pelas classes e interfaces da API de coleções.
Neste artigo, vamos abordar a API de coleções Java, uma das mais úteis e importantes do Java SE, explorando principalmente seus recursos para ordenação. Serão apresentados alguns tipos de coleções fundamentais, bem como as classes utilitárias Arrays, Collections, Comparable e Comparator. Para exemplificar, criaremos uma aplicação web que exibe, de forma ordenada, uma listagem de clientes obtidos de uma base de dados. Clicando sobre uma das colunas da listagem, o usuário pode ordenar os clientes por vários campos, sem a necessidade de executar novas consultas no banco de dados.
Introdução ao uso de coleções
Em termos gerais, uma coleção pode ser entendida como um grupo de objetos com características
Para a manipulação de grupos de objetos, portanto, os arrays não são práticos o suficiente. Isso motivou os criadores de Java a definir, desde o Java 1.0, coleções dinâmicas como Vector e Hashtable. E no Java 2, veio a definição de uma arquitetura unificada pra representar e manipular coleções de objetos em Java – o Java Collections Framework. Formada por interfaces, classes abstratas e implementações focadas em vários cenários de uso, o framework de coleções traz muitas facilidades importantes. Com ele, deixa de ser necessário implementar métodos de inserção, remoção, ordenação e busca, por exemplo. Esses recursos já são oferecidos, com implementações eficientes e bem testadas.
Basicamente, o framework de coleções é composto por:
· Interfaces de coleções, que representam os diferentes tipos de coleções (Collection, Set, List, Queue, Map etc.);
· Implementações das interfaces, que podem ser utilizadas pelos programadores para criar instâncias das coleções prontas para uso (HashSet, ArrayList, PriorityQueue etc.);
· Implementações legadas, que são as classes que já existiam antes da criação do framework (Vector e Hashtable);
· Classes abstratas, implementações parciais das interfaces para facilitar implementações customizadas (AbstractList, AbstractSet, etc.);
· Classes utilitárias, contendo métodos úteis para manipulação de coleções, tais como métodos de ordenação e busca (ex.: Collections).
As interfaces Map e Collection formam a base do framework. Collection permite a manipulação padronizada de coleções de tipos variados (List, Set ou Queue). Também define os métodos minimamente necessários para todas as coleções, tais como add(Object o), remove(Object o), contains(Object o), size(), entre outros. A Figura 1 apresenta um diagrama com as principais coleções e classes utilitárias que fazem parte do framework. Os itens desse diagrama são descritos na Tabela 1 (interfaces) e na Tabela 2 (classes). Este artigo aborda principalmente as interfaces descendentes de Collection.
Todas as interfaces de coleções, a partir do Java 5, são genéricas. Isso significa que, quando se cria uma instância de um subtipo de Collection ou de Map, é possível especificar o tipo de objeto que a coleção pode armazenar. Assim, se pode verificar se os objetos inseridos na coleção são do tipo correto em tempo de compilação. Para nos concentrar no uso e ordenação das coleções, não detalhamos o recurso de tipos genéricos, mas o usaremos ao definir nossas coleções.
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor


0
0
