- Estrutura de coleção Java
- Hierarquia da Estrutura de Coleção
- Interface de coleção
- Interface do iterador
O Coleção em Java é uma estrutura que fornece uma arquitetura para armazenar e manipular o grupo de objetos.
As coleções Java podem realizar todas as operações que você executa em dados, como pesquisa, classificação, inserção, manipulação e exclusão.
Coleção Java significa uma única unidade de objetos. A estrutura Java Collection fornece muitas interfaces (Set, List, Queue, Deque) e classes ( ListaArray , Vetor, Lista vinculada , Fila de prioridade , HashSet, LinkedHashSet, TreeSet).
O que é coleção em Java
Uma coleção representa uma única unidade de objetos, ou seja, um grupo.
O que é um framework em Java
- Ele fornece arquitetura pronta.
- Ele representa um conjunto de classes e interfaces.
- É opcional.
O que é estrutura de coleção
A estrutura Collection representa uma arquitetura unificada para armazenar e manipular um grupo de objetos. Tem:
- Interfaces e suas implementações, ou seja, classes
- Algoritmo
Você sabe?
- Quais são as duas maneiras de iterar os elementos de uma coleção?
- Qual é a diferença entre as classes ArrayList e LinkedList na estrutura de coleção?
- Qual é a diferença entre as classes ArrayList e Vector na estrutura de coleção?
- Qual é a diferença entre as classes HashSet e HashMap na estrutura de coleção?
- Qual é a diferença entre as classes HashMap e Hashtable?
- Qual é a diferença entre a interface Iterator e Enumeration na estrutura de coleção?
- Como podemos classificar os elementos de um objeto? Qual é a diferença entre interfaces Comparáveis e Comparadoras?
- O que significa o método hashcode()?
- Qual é a diferença entre coleção Java e coleções Java?
Hierarquia da Estrutura de Coleção
Vamos ver a hierarquia do framework Collection. O java.util pacote contém todos os Aulas e interfaces para a estrutura da coleção.
Interface de métodos de coleta
Existem muitos métodos declarados na interface Collection. Eles são os seguintes:
Não. | Método | Descrição |
---|---|---|
1 | adição booleana pública (E e) | É usado para inserir um elemento nesta coleção. |
2 | público booleano addAll (Coleção c) | É usado para inserir os elementos da coleção especificada na coleção de chamada. |
3 | remoção booleana pública (elemento objeto) | É usado para excluir um elemento da coleção. |
4 | público booleano removeAll (Coleção c) | É usado para excluir todos os elementos da coleção especificada da coleção invocadora. |
5 | removeIf booleano padrão (filtro de predicado) | É usado para excluir todos os elementos da coleção que satisfazem o predicado especificado. |
6 | público booleano reterAll (Coleção c) | É usado para excluir todos os elementos da coleção invocada, exceto a coleção especificada. |
7 | tamanho interno público() | Ele retorna o número total de elementos da coleção. |
8 | público vazio claro () | Remove o número total de elementos da coleção. |
9 | booleano público contém (elemento objeto) | É usado para pesquisar um elemento. |
10 | booleano público contémAll (Coleção c) | É usado para pesquisar a coleção especificada na coleção. |
onze | iterador público iterador() | Ele retorna um iterador. |
12 | objeto público[] toArray() | Ele converte coleção em array. |
13 | público T[] toArray(T[] a) | Ele converte coleção em array. Aqui, o tipo de tempo de execução do array retornado é o do array especificado. |
14 | booleano público isEmpty() | Verifica se a coleção está vazia. |
quinze | Fluxo padrão paraleloStream() | Ele retorna um Stream possivelmente paralelo com a coleção como origem. |
16 | fluxo padrão stream() | Ele retorna um Stream sequencial com a coleção como origem. |
17 | divisor padrão divisor() | Ele gera um Spliterator sobre os elementos especificados na coleção. |
18 | booleano público é igual (elemento objeto) | Corresponde a duas coleções. |
19 | hashCode int público() | Ele retorna o número do código hash da coleção. |
Interface do iterador
A interface do iterador fornece a facilidade de iterar os elementos apenas na direção direta. |
Métodos de interface Iterator
Existem apenas três métodos na interface do Iterator. Eles são:
Não. | Método | Descrição |
---|---|---|
1 | público booleano hasNext() | Retorna verdadeiro se o iterador tiver mais elementos, caso contrário, retorna falso. |
2 | objeto público próximo() | Ele retorna o elemento e move o ponteiro do cursor para o próximo elemento. |
3 | remoção de vazio público() | Remove os últimos elementos retornados pelo iterador. É menos usado. |
Interface Iterável
A interface Iterable é a interface raiz para todas as classes da coleção. A interface Collection estende a interface Iterable e, portanto, todas as subclasses da interface Collection também implementam a interface Iterable.
Ele contém apenas um método abstrato. ou seja,
Iterator iterator()
Ele retorna o iterador sobre os elementos do tipo T.
para cada texto datilografado
Interface de coleção
A interface Collection é a interface implementada por todas as classes na estrutura de coleção. Ele declara os métodos que cada coleção terá. Em outras palavras, podemos dizer que a interface Collection constrói a base da qual depende a estrutura da coleção.
Alguns dos métodos da interface Collection são Boolean add (Object obj), Boolean addAll (Collection c), void clear(), etc., que são implementados por todas as subclasses da interface Collection.
Interface de lista
A interface de lista é a interface filha da interface de coleção. Ele inibe uma estrutura de dados do tipo lista na qual podemos armazenar a coleção ordenada de objetos. Pode ter valores duplicados.
A interface de lista é implementada pelas classes ArrayList, LinkedList, Vector e Stack.
Para instanciar a interface List, devemos usar:
List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack();
Existem vários métodos na interface List que podem ser usados para inserir, excluir e acessar os elementos da lista.
As classes que implementam a interface List são fornecidas abaixo.
ListaArray
A classe ArrayList implementa a interface List. Ele usa uma matriz dinâmica para armazenar o elemento duplicado de diferentes tipos de dados. A classe ArrayList mantém o pedido de inserção e não é sincronizada. Os elementos armazenados na classe ArrayList podem ser acessados aleatoriamente. Considere o seguinte exemplo.
import java.util.*; class TestJavaCollection1{ public static void main(String args[]){ ArrayList list=new ArrayList();//Creating arraylist list.add('Ravi');//Adding object in arraylist list.add('Vijay'); list.add('Ravi'); list.add('Ajay'); //Traversing list through Iterator Iterator itr=list.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Saída:
Ravi Vijay Ravi Ajay
Lista vinculada
LinkedList implementa a interface Collection. Ele usa uma lista duplamente vinculada internamente para armazenar os elementos. Ele pode armazenar os elementos duplicados. Mantém o pedido de inserção e não é sincronizado. No LinkedList, a manipulação é rápida porque nenhuma mudança é necessária.
Considere o seguinte exemplo.
import java.util.*; public class TestJavaCollection2{ public static void main(String args[]){ LinkedList al=new LinkedList(); al.add('Ravi'); al.add('Vijay'); al.add('Ravi'); al.add('Ajay'); Iterator itr=al.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Saída:
Ravi Vijay Ravi Ajay
Vetor
Vector usa uma matriz dinâmica para armazenar os elementos de dados. É semelhante ao ArrayList. No entanto, é sincronizado e contém muitos métodos que não fazem parte da estrutura Collection.
Considere o seguinte exemplo.
import java.util.*; public class TestJavaCollection3{ public static void main(String args[]){ Vector v=new Vector(); v.add('Ayush'); v.add('Amit'); v.add('Ashish'); v.add('Garima'); Iterator itr=v.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Saída:
Ayush Amit Ashish Garima
Pilha
A pilha é a subclasse de Vector. Ele implementa a estrutura de dados last-in-first-out, ou seja, Stack. A pilha contém todos os métodos da classe Vector e também fornece seus métodos como boolean push(), boolean peek(), boolean push(object o), que define suas propriedades.
Considere o seguinte exemplo.
import java.util.*; public class TestJavaCollection4{ public static void main(String args[]){ Stack stack = new Stack(); stack.push('Ayush'); stack.push('Garvit'); stack.push('Amit'); stack.push('Ashish'); stack.push('Garima'); stack.pop(); Iterator itr=stack.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Saída:
Ayush Garvit Amit Ashish
Interface de fila
A interface da fila mantém a ordem primeiro a entrar, primeiro a sair. Pode ser definida como uma lista ordenada que serve para conter os elementos que estão prestes a ser processados. Existem várias classes como PriorityQueue, Deque e ArrayDeque que implementam a interface Queue.
A interface da fila pode ser instanciada como:
Queue q1 = new PriorityQueue(); Queue q2 = new ArrayDeque();
Existem várias classes que implementam a interface Queue, algumas delas são fornecidas a seguir.
Fila de prioridade
A classe PriorityQueue implementa a interface Queue. Ele contém os elementos ou objetos que devem ser processados de acordo com suas prioridades. PriorityQueue não permite que valores nulos sejam armazenados na fila.
Considere o seguinte exemplo.
import java.util.*; public class TestJavaCollection5{ public static void main(String args[]){ PriorityQueue queue=new PriorityQueue(); queue.add('Amit Sharma'); queue.add('Vijay Raj'); queue.add('JaiShankar'); queue.add('Raj'); System.out.println('head:'+queue.element()); System.out.println('head:'+queue.peek()); System.out.println('iterating the queue elements:'); Iterator itr=queue.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } queue.remove(); queue.poll(); System.out.println('after removing two elements:'); Iterator itr2=queue.iterator(); while(itr2.hasNext()){ System.out.println(itr2.next()); } } }
Saída:
head:Amit Sharma head:Amit Sharma iterating the queue elements: Amit Sharma Raj JaiShankar Vijay Raj after removing two elements: Raj Vijay Raj
E a interface
A interface Deque estende a interface Queue. No Deque, podemos remover e adicionar os elementos de ambos os lados. Deque significa uma fila dupla que nos permite realizar as operações em ambas as extremidades.
Deque pode ser instanciado como:
Deque d = new ArrayDeque();
ArrayDeque
A classe ArrayDeque implementa a interface Deque. Isso nos facilita usar o Deque. Ao contrário da fila, podemos adicionar ou excluir os elementos de ambas as extremidades.
ArrayDeque é mais rápido que ArrayList e Stack e não tem restrições de capacidade.
Considere o seguinte exemplo.
import java.util.*; public class TestJavaCollection6{ public static void main(String[] args) { //Creating Deque and adding elements Deque deque = new ArrayDeque(); deque.add('Gautam'); deque.add('Karan'); deque.add('Ajay'); //Traversing elements for (String str : deque) { System.out.println(str); } } }
Saída:
Gautam Karan Ajay
Definir interface
Set Interface em Java está presente no pacote java.util. Ele estende a interface da coleção. Representa o conjunto não ordenado de elementos que não nos permite armazenar os itens duplicados. Podemos armazenar no máximo um valor nulo em Set. Set é implementado por HashSet, LinkedHashSet e TreeSet.
O conjunto pode ser instanciado como:
Set s1 = new HashSet(); Set s2 = new LinkedHashSet(); Set s3 = new TreeSet();
HashSet
A classe HashSet implementa Set Interface. Representa a coleção que usa uma tabela hash para armazenamento. Hashing é usado para armazenar os elementos no HashSet. Ele contém itens exclusivos.
Considere o seguinte exemplo.
import java.util.*; public class TestJavaCollection7{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Saída:
Vijay Ravi Ajay
LinkedHashSet
A classe LinkedHashSet representa a implementação LinkedList da Set Interface. Ele estende a classe HashSet e implementa a interface Set. Assim como o HashSet, ele também contém elementos exclusivos. Mantém a ordem de inserção e permite elementos nulos.
Considere o seguinte exemplo.
import java.util.*; public class TestJavaCollection8{ public static void main(String args[]){ LinkedHashSet set=new LinkedHashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Saída:
Ravi Vijay Ajay
Interface SortedSet
SortedSet é a alternativa da interface Set que fornece uma ordenação total de seus elementos. Os elementos do SortedSet são organizados em ordem crescente (ascendente). O SortedSet fornece métodos adicionais que inibem a ordem natural dos elementos.
O SortedSet pode ser instanciado como:
SortedSet set = new TreeSet();
Conjunto de árvores
A classe Java TreeSet implementa a interface Set que usa uma árvore para armazenamento. Assim como o HashSet, o TreeSet também contém elementos exclusivos. No entanto, o tempo de acesso e recuperação do TreeSet é bastante rápido. Os elementos em TreeSet armazenados em ordem crescente.
Considere o seguinte exemplo:
import java.util.*; public class TestJavaCollection9{ public static void main(String args[]){ //Creating and adding elements TreeSet set=new TreeSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Saída:
Ajay Ravi VijayO que vamos aprender no Java Collections Framework
- Classe ArrayList
- Classe LinkedList
- Interface de lista
- Classe HashSet
- Classe LinkedHashSet
- Classe TreeSet
- Classe PriorityQueue
- Interface do mapa
- Classe HashMap
- Classe LinkedHashMap
- Classe TreeMap
- Classe hashtable
- Ordenação
- Interface comparável
- Interface do comparador
- Classe de propriedades em Java