Você está na página 1de 5

Collection JAVA

Utilidade do java.util.list
Utilidade do java.util.queue
Utilidade do java.util.set
Utilidade do java.util.map

java.util.list ou interface list:

Arrays, são estruturas de dados.

Java Collection API

java.util.collection

A implementação mais comum é a ArrayList, que é uma array dinamica, facilitadora, pois arrays
são estaticos, tem que mexer dado por dado para arrumar isso, e pode também atualizar, mover,
remover de forma simples, e pode organizar com comparators.
Para o uso do arrayList, primeiro se tem a importação

import java.util.ArrayList;
import java.util.List
E depois se declara na chamada

List<String> nomes = new ArrayList<>();

A partir disso, tem os parametros, o principal é o add “nome da ArrayList”.add(“nome”);

Sobre o collection, tem o metodo sort [Collection.sort(“nome de ArrayList”)], que organiza por
ordem alfabética.

Também tem o metódo .set


Que atualiza o valor com o que você argumentar.
Nessa situação se usa “ArrayList”.set(“posição”, “nome novo”);

Também tem o metódo remove, que remove o item na posição indicada.


Se usa:

“ArrayList”.remove(index “posição”);
ou
“ArrayList”.remove(0: “nome ou Item”);

Também tem o .get, que recebe o indice, a posição


Se usa:

String “String” = “ArrayList”.get(“posição”);

Se você quiser ver o tamanho da ArrayList, tem o metódo size, que se usa da seguinte maneira:

int “nome da int” = “ArrayList”.size();


Também tem o contains que retorna um booleano que afirma se tem aquele item na lista, se usa:

booleans tamnome = “ArrayLIst”.contains(“nome ou item”);

Tem o metódo isEmpty, que avisa se a lista esta vazia ou não, se usa:

booleans listavazia = “ArrayList”.isEmpty[];

Tem o indexOf, que recebe o nome de um item da lista e retorna sua posição.

Sobre navegação nos itens da lista, se pode usar o for each como se fosse uma array mesmo, se usa:

for (String “qualquer nome ai”: ”ArrayList”) {

SOPln(qualquer nome ai);


}

Isso vai mostrar os nomes da lista.

Também um bem legal é o iterator, que retonar true sempre que entra mais um item na lista, se usa:

Iterator<String> “nome iterator” = “ArrayList”.iterator();

while (iterator.hasNext()) {

SOPln(iterator.next());

}
Isso vai mostrar o item que for adcionado na lista.

E por enquanto estudamos isso, do ArrayList.

Veremos agora um pouco do Vector.

Queue

Filas no controle de dados, é um conceito simples e classico, o primeiro a entrar deve ser o
primeiro a sair.

Isso no java é implementado, será implementado, com o java.util.LinkedList.

Ela garante uma ordem, e não muda ela nunca, e sempre segue a regra de FIFO.

Para começar a usar, é só fazer o seguinte.


Import java.util.Queue;

e ai chamar a String.

Queue<String> “nome o Queue” = new LinkedList();

Tem os metodos, poll que tira a cabeça da fila, o primeiro da fila, e se a fila estiver vazia ela retorna
null.
Tem o peek que só retorna o primeiro item da fila.
E tem o element, que retorna o cabeça da fila, mas se a fila estiver vazia, retorna
“NoSuchElementException”

Queue é tem muitos metodos semelhantes com listas, tipo iterator ou for each.

java.util.set:
Essa implementação tem 3 formas.
java.util.HashSet
java.util.TreeSet
java.util.LinkedHashSet

Isso daqui não garante uma ordem.


Não permite repetição.
Permite adção e remoção, mas não possui busca, apenas leitura.
E não permite mudança de ordenação.

Quando usar cada um desses 3:


O HashSet é para ser usado quando não se necessita de uma ordem.
A LinkedHashSet serve para quando você que manter a ordem de incersão.
TreeSet é quando se precisa mudar a ordem, e isso com comparators.

A mais comum é a HashSet, simples, tem poucos metódos, otimizada, boa pra todo mundo.

A LinkedHashSet mantem a ordem de inserção, ou seja, entrou de um jeito, aparecer daquele jeito, e
também permite remoção, e atualização.

E tem o TreeSet, uma arvore binaria, com uma ordem definida por um algoritmo, então a ordem
monta uma “arvore” por isso, ela é a mais lenta e pesada.

Por isso também tem detalhes a mais ai no meio, tipo o metódo first, que mostra quem tá no topo,
esse valor do topo é ultimo a ser adicionado, também tem o metódo last, que retorna o primeiro a
ser adicionado, também tem o higher e o lower, que quando recebem um valor, mostram o valor
possicionado em cima e em baixo dele respectivamente.

O metódo poll é aplicado na TreeSet.


O problema de performance vem do fato, de que toda vez que se mexer na ordem, o algoritmo é
aplicado mais uma vez.

Primeiramente, java.util.map não é herdada de java.util.collection, então não tem muitos metodos
do collection, mais tem semelhanças.
Contem 3 implementações principais.
Java.util.HashMap muito utilizada
java.util.TreeMap uma arvore binaria
java.util.HashTable cenario de sincronização, pouco usada.

O map tem uma entrada de valores dierente, ele puxa dois valores, um deles uma chave de
indexação que não pode ser repetida, o seguindo um valor atribuido a essa chave.

Permite repetição, apenas não de chaves.


Existe pusca tanto por valores, tanto por chaves, como também atualização remoção e navegação.

Sobre seus metodos, tem o put, bem simples, que recebe uma string, a chave, e um valor.

“HashMap”.put(“nome”, “valor”);

É de se notar que se você fizer um put, que usa a mesma chave, mais muda o valor, ele vai apenas
atualizar o valor.

Tem o metódo get, simplão.

Tem o metóto containsKey, que procura a chave e retorna booleano

Como também tem o containsValue, que procura o valor e também retorna booleano.

Os metodos de navegação, tem dois.

O entrySet e o KeySet

Ambos usados com o for, fornecem as chaves e os valores em sequencia, essa é mais performatica
pois o KeySet é usado com um metódo get no meio.

Tem o metódo size, que mostra o tamanho do mapa, e tem o clear, que limpa tudo.

By the way, tem o LinkedHashMap, que tem mais organização, se você se preocupa, usa esse.

O TreeMap funciona quase como o próprio TreeSet, a diferença é que tem dois valores.

Tem o FirstEntry e o LastEntry.


Tem o LowerKey e o HigherKey, que recebem um valor e mostram o de cima e o de baixo.
Tem o pollLast e o pollFirst, que apagam o ultimo e o primeiro valor.

E por fim o HashTable


Metódo get, size, entrySet, KeySet, metódo put, e afins, a diferença é que tem sincronização, pode
acessar mais de um index por vez, tem metódos pra isso.

A interface comparator, definem regras de negocio, padronização de objeto basicamente.

Java.util.Comparator que define regra de ordenação


Java.util.Comparable regra de ordenação em classe de domínio.

Quando se trabalha objetos complexos, precisa-se de uma regra para ordenar.


O collection.sort chamando uma lista que, extends de comparator ou comparable, do contrario, não
compila.

Tem o metódo compareTo, retorrna inteiro e recebe um objeto.


Isso organiza um objeto com outro objeto, se retorna um valor positivo, o comparado é maior, se o
valor for negativo, o comparado é menor, se 0 são iguais.
Isso no comparable que no caso compara valor por valor.

O comparator tem o metódo compare. Também retorna int, e recebe dois parametros para comparar.

Tem metódo add e de primeira a ordem é de inserção, se você usar o metódo sort, e indicar por onde
organizar, a ordem será, se númerica, crescente, se forem String será alfabetica.

Esse sort se usa:

“ArrayList”.sort(first, second[mostra a ordem que será organizada] → first.getIdade() -


second.getIdade[Mostra o parametro a ser acompanhado]());
Em outras palavras esse sort recebe um comparator, simples.

Tem o metódo comparingInt(Que faz o mesmo daquile lá, só que altomatico, sem precisar indicar
quem aompanha quem, by the way ele vai na ordem decresente).

Tem o método reversed, que só inverte a ordem.

Para poder, simplesmente lançar a braba e só jogar a ArrayList no dane-se você precisa declarar a
classe extends de Comparable.

E se quisermos apenas jogar outro comparator, pode, é só declarar esse comparator logo após o seu
ArrayList:

“ArrayList”, new “comparator”());

Resumindo um pouco, comparable recebe um valor, logo se entende que será comparado com outro,
já comparable recebe dois e pode ser melhor indicado.

Você também pode gostar