Arrays x List x Stack x Queue em Java
Olá devs, boa noite, venho por meio deste post demonstrar o que venho aprendendo sobre Java!
Array
- Uma lista de valores que precisam ter seu tamanho pré-especificado ja na inicialização.
public class Main { public static void main(String[] args ) { String[] l1 = new String[3]; } }
-
No caso acima, a primeira palavra String refere o tipo, seguido de [] que indica que é um array do tipo String, após a atribuição, está o new String[3], o [3] indica que é um array de 3 índices pré-alocados.
-
Para atribuir valores aos indices presentes no array, podemos fazer:
public class Main {
public static void main(String[] args ) {
String[] l1 = new String[3];
l1[0] = "primeiro valor do array";
}
};
- No caso citado, o l1 se refere ao nome do array que desejamos atribuir o valor, seguido de [0] onde o 0 indica o índice que desejamos atribuir o valor. Todo índice de um array começa no 0!
O array normal, demonstrado acima tem sua característica pré-definida e estática, não pode ter seus índices incrementados.
ArrayList
No list, segue a mesma lógica do array, porém ele tem sua característica dinâmica, podendo ter seus índices alterados.
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args ) {
List<String> nomes = new ArrayList<>();
}
};
-
No exemplo acima, podemos observar que o List indica que vamos utiliza-lo, seguido da definição do seu tipo String entre <>, após nomear o List, devemos atribuir o new ArrayList<>();
-
Para atribuir valores ao List, podemos fazer:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args ) {
List<String> nomes = new ArrayList<>();
nomes.add("nior");
nomes.add("nioritos");
nomes.add("code");
nomes.size();
nomes.
}
};
-
Acima podemos observar que adicionamos o nome nior, nioritos e code ao List nomes, utilizando o método .add();
-
Para verificarmos o tamanho do List, temos o método .size(), podendo ter diversos outros métodos para utilizarmos:
-
indexOf(x); passando o valor que deseja consultar o índice esse método retorna-o.
-
set(y,x); passando o índice já existente e o valor, você substitui o valor do índice mencionado pelo valor presente.
-
contains(x); passando o valor, você verifica se o mesmo está presente no List.
-
remove(x); passando ou valor, você remove-o do List
Stack
Com o dinamismo do List, pode ter uma funcionalidade no tipo: histórico de um navegador ou uma pilha de livros. Seguindo a filosofia - o último adicionado é o primeiro da lista e o primeiro adicionado é o último da lista.
import java.util.Stack;
public class Main {
public static void main(String[] args ) {
Stack<int> idades = new Stack<>();
Stack.push(15);
Stack.push(16);
Stack.push(14);
}
};
- No exemplo acima, o último adicionado valor à Stack é o 14, ou seja, ficará numa sequência de pila: [15,16,14];
import java.util.Stack;
public class Main {
public static void main(String[] args ) {
Stack<int> idades = new Stack<>();
Stack.push(15);
Stack.push(13);
Stack.push(12);
Stack.push(16);
Stack.push(14);
Stack.pop();
Stack.peek();
}
};
- Podemos observar que um dos métodos utilzados acima é o .pop(), que serve para tirar o "primeiro da lista/ultimo adicionado", que no caso será o 14.
- Já o método .peek() é utilizado para demonstrar qual é o primeiro valor da pilha, que no caso será o 16;
Queue
Segue a mesma lógica inversa do Stack, seguindo exemplo de uma fila, sendo: o primeiro a entrar é o primeiro a sair
import java.util.Queue;
public class Main {
public static void main(String[] args ) {
Queue<String> fila = new LinkedList<>();
fila.add("creusa");
fila.add("seu bené");
fila.add("jorjao");
fila.add("cleyton");
fila.poll();
fila.peek();
fila.isEmpty();
}
};
- O método .poll(), tira o primeiro da fila que no caso seria creusa;
- O método .peek(), tem a mesma funcionalidade, vendo o primeiro da fila, que no caso seria seu bené;
- O método .isEmpty(), verifica se a Queue está vazia.