Uma Java List é es­pe­ci­al­mente adequada para cenários em que o tamanho do conjunto de dados não é conhecido an­te­ci­pa­da­mente ou pode mudar com o tempo. Mostramos exemplos concretos do uso de listas e quais operações você pode realizar com elas.

Para que servem as listas Java?

As listas são uma das es­tru­tu­ras de dados básicas na pro­gra­ma­ção Java e têm uma ampla gama de apli­ca­ções. Elas contêm elementos numa ordem es­pe­cí­fica que podem ser adi­ci­o­na­dos, mo­di­fi­ca­dos, apagados ou con­sul­ta­dos. Os objetos de uma Java List podem pertencer a di­fe­ren­tes classes. Além disso, é possível armazenar elementos du­pli­ca­dos ou nulos. As listas Java suportam classes e métodos genéricos, o que garante a segurança dos tipos.

As listas são uti­li­za­das em apli­ca­ções de bases de dados para armazenar e aceder a grandes registos de consultas a bases de dados. Nas in­ter­fa­ces gráficas de uti­li­za­dor, as listas Java são fre­quen­te­mente uti­li­za­das para apre­sen­tar uma lista de elementos, por exemplo, as opções de um menu suspenso ou os di­fe­ren­tes artigos de uma loja online.

As listas Java também são in­dis­pen­sá­veis em al­go­rit­mos e es­tru­tu­ras de dados. Elas são uti­li­za­das na im­ple­men­ta­ção de al­go­rit­mos de ordenação, al­go­rit­mos de pesquisa ou es­tru­tu­ras de pilhas e filas. Em apli­ca­ções de rede, as listas podem ajudar a facilitar a gestão de conexões e sockets.

Os métodos das listas Java

As listas Java pertencem à interface col­lec­ti­ons e devem ser im­por­ta­das do pacote java.util. As classes de im­ple­men­ta­ção incluem Java ArrayList, Lin­ke­dList, Vector e Stack. Pode declarar as di­fe­ren­tes ins­tân­cias da lista da seguinte forma:

List linkedList = new LinkedList(); // LinkedList
List arrayList = new ArrayList(); // ArrayList
List vecList = new Vector(); // Vector
List stackList = new Stack(); //Stack
Java

Aqui estão alguns dos métodos mais im­por­tan­tes uti­li­za­dos em relação às listas Java:

  1. int size(): determina a quan­ti­dade de elementos numa lista.
  2. void add(int index, E element): adiciona um elemento numa posição es­pe­cí­fica.
  3. boolean isEmpty(): verifica se a lista está vazia.
  4. void clear(): elimina todos os elementos da lista.
  5. boolean contains(Object o): retorna o valor true se o objeto o estiver na lista.
  6. boolean add(E e): adiciona o elemento es­pe­ci­fi­cado ao final da lista.
  7. boolean remove(Object o): elimina a primeira ocor­rên­cia de um elemento es­pe­cí­fico.
  8. E get(int index): retorna o elemento no índice indicado.
  9. E set(int index, E element): substitui ou insere um elemento no índice es­pe­ci­fi­cado.
  10. Object[] toArray(): retorna uma matriz com os elementos da lista.
  11. List<E> subList(int fromIndex, int toIndex): captura todos os elementos dentro do intervalo definido.
  12. default void replaceAll(UnaryOperator<E> operator): método padrão em Java 8 que aplica ope­ra­do­res Java a cada elemento e substitui o resultado por esse elemento.

Casos comuns de uti­li­za­ção das listas Java

A seguir, mostramos os usos mais comuns de uma lista Java. Estes incluem con­ver­sões de matrizes para listas e vice-versa, bem como ordenar, recuperar ou alterar elementos.

Converter um array numa lista

Para converter uma matriz, pode fazer um loop através de uma lista e utilizar o método .add() para adicionar os elementos à matriz um a um.

import java.util.*;
    public class ArrayToList{
      public static void main(String args[]){
      // Creating Array
      String[] colors={"blue","green","red","yellow"};
      System.out.println("Array: "+Arrays.toString(colors));
      //Converting Array to List
      List<String> list=new ArrayList<String>();
      for(String color: colors){
        list.add(color);
      }
      System.out.println("List: "+list);
      }
    }
Java

Isso dá este resultado:

Array: [blue, green, red, yellow]
List: [blue, green, red, yellow]
Java

Converter uma lista em uma matriz

Uma lista pode ser con­ver­tida em uma matriz com o método toArray():

import java.util.*;
    public class ListToArray{
      public static void main(String args[]){
       List<String> days = new ArrayList<String>();
       days.add("Monday");
       days.add("Tuesday");
       days.add("Wednesday");
       days.add("Thursday");
       days.add("Friday");
       days.add("Saturday");
       days.add("Sunday");
       // Converting ArrayList to Array
       String[] array = days.toArray(new String[days.size()]);
       System.out.println("Array: "+Arrays.toString(array));
       System.out.println("List: "+days);
      }
    }
Java

No resultado, vemos que o conteúdo da matriz e da lista são idênticos:

Array: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]
List: [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]
Java

Recuperar e modificar elementos de uma lista Java

Com o método get(), é possível aceder a um elemento num índice es­pe­cí­fico, enquanto que com set() é possível trocar e adicionar um objeto numa posição desejada.

import java.util.*;
    public class ListExample{
      public static void main(String args[]){
      // Creating a List
      List<String> letters=new ArrayList<String>();
      // Adding elements
      letters.add("a");
      letters.add("b");
      letters.add("c");
      // get()
      System.out.println("Element at index 1: "+letters.get(1));
      // set()
      letters.set(2, "d");
      for(String letter: letters)
      System.out.println(letter);
      }
    }
Java

Como em Java a contagem começa pelo índice 0, obtemos o seguinte resultado:

Element at index 1: b
a
b
d
Java

Ordenar uma lista

Para ordenar uma lista Java, podemos utilizar o método .sort() da classe col­lec­ti­ons. Per­cor­re­mos a lista através de um loop e mostramos os elementos por ordem na consola:

import java.util.*;
    class SortArrayList{
      public static void main(String args[]){
      // Creating a list of numbers
      List<Integer> numbers=new ArrayList<Integer>();
      numbers.add(4);
      numbers.add(57);
      numbers.add(92);
      numbers.add(26);
      // Sorting
      Collections.sort(numbers);
      for(Integer number: numbers)
        System.out.println(number);
      }
    }
Java

Os números da lista Java aparecem no ecrã em ordem crescente:

4
26
57
92
Java

487fcdb89f8cda6eeaa9a926605c32e1

Ir para o menu principal