Coleções em Java
- #Java
O que é uma coleção ?
Antes de entender o que é uma coleção, é preciso saber o que é um objeto.
Digo isso porque porque em Java, não é possível criar uma coleção de tipos primitivos, ou de variáveis por exemplo.
Em java, as coleções aceitam apenas objetos.
Objeto
Um objeto, basicamente é uma instância de alguma classe, ou seja, algo que pode ser replicado, levando consigo os comportamentos e propriedades da classe que deu origem a ele.
Mas então eu não posso criar uma coleção de int, ou talvez double ?
A resposta é não ! Porém existe uma forma de criar coleções de tipos primitivos.
Para isso você vai precisar entender o que são Wrappers.
Wrappers
Em Java, um wrapper é um tipo de objeto que envolve um tipo de dado primitivo.
Isso permite que esse dado primitivo seja tratado como um objeto.
Cada tipo primitivo no Java tem seu Wrapper equivalente.
Abaixo temos o tipo primitivo seguido de seu wrapper equivalente:
** boolean: Boolean
** byte: Byte
** short: Short
** int: Integer
** long: Long
** float: Float
** double: Double
** char: Character
Ou seja, se precisar criar uma coleção de int, deverá utilizar Integer, se desejar criar uma coleção de float, deverá utilizar Float e assim por diante.
Agora sim, o que é uma coleção ?
Em Java, uma coleção é uma estrutura de dados utilizada para armazenar e manipular um grupo de objetos.
Tipos de Coleções
Em Java, temos quatro tipos principais:
1. Listas
2. Conjuntos
3. Mapas
4. Pilhas (Filas)
Mas é importante saber que existem outras interfaces que implementam essas 4 coleções, oferecendo funcionalidades a mais....
1. Coleções do tipo Lista
Interface
As coleções do tipo Lista em Java implementam a interface List.
Características
Elas possuem algumas características principais:
** Mantem uma sequência ordenada de elementos
** Cada elemento é identificado por um índice
** Permite a existência de elementos repetidos
** Os elementos podem ser acessador por índice ou por iteração
Implementação
Existem várias implementações possível do tipo List em Java.
Algumas das principais são:
** ArrayList
** LinkedList
** Vector
** Stack
** CopyOnWriteArrayList
2. Coleções do tipo Conjunto
Interface
As coleções do tipo Conjunto em Java implementam a interface Set.
Características
Ela possui as seguintes características:
** Não mantém uma ordem específica dos elementos armazenados
** Não permite elementos repetidos
** Utulizam o método equals() para comparar os elementos e determinar se são iguais
** Não acessam os elementos por índice
Implementação
As principais implementações de coleções Java do tipo conjunto são:
** HashSet
** LinkedHashSet
**TreeSet
3. Coleções do tipo Mapa
Interface
As coleções do tipo mapa implementam a interface Map em Java.
Características
** A interface Map é usada para armazenar um conjunto de pares chave-valor
** Cada chave é única e cada valor pode ser associado a apenas uma chave.
Implementação
As principais implementações de coleçõs Map em Java são:
** HashMap
** TreeMap
** LinkedHashMap
4.Coleções do tipo Pilha
Interface
As coleções do tipo Pilha implementam a interface Deque em Java. Porém ela também pode ser implementada utilizando a interface List.
Características
** É uma coleção de elementos ordenados, onde o último elemento adicionado é o primeiro a ser removido (conceito LIFO - Last-In, First-Out).
** Em Java, a Pilha pode ser implementada usando a interface Deque e as classes ArrayDeque ou LinkedList.
Implementação
As principais implementações de coleçõs Pilha em Java são:
** ArrayDeque
** LinkedList
** Stack