DEV Community

Beatriz Maciel
Beatriz Maciel

Posted on • Edited on

HackerRank #26 | Generics | 🇧🇷

Este exercício pede para que completemos uma classe com um método Generics que consiga receber tanto Strings quanto ints.

Os Generic Methods sĂŁo utilizados nestes casos e sua sintaxe Ă© a seguinte (em JDK8):

static <T> void fromArrayToCollection(T[] a, Collection<T> c) { for (T o : a) { c.add(o); // Correct } } 
Enter fullscreen mode Exit fullscreen mode

Quando usamos estamos especificando o tipo de elementos que o Array pega. Usamos a letra T porque, por convenção, temos as seguintes iniciais no Java:

T: Type | E: Element | V: Value | K: Key | N: Number

Essas convenções não são obrigatórias, só facilitam a leitura e o entendimento do código para outras pessoas. Especificamos que o Array T[] se chamará a e se utilizará da Collection que passa o tipo T e que se chamará c.

Depois de passarmos a especificação de que Array e Tipo, fazemos um forEach (sintaxe: for ( : ) {}) dizendo que pegamos todo elemento o de tipo T (que não existe, então recebe qualquer coisa) do Array a.

Em seguida, retornamos que os itens chamados o serão adicionados à c pelo método .add.

========

O exemplo acima é da documentação oficial da Oracle. No caso da resolução do exercício, fiz da seguinte forma:

  • Dentro da class Printer, declarei o mĂ©todo public que passa elementos do tipo <T> e um printArray que passa um Array T[] chamado array.
  • Fiz um forEach onde elementos do tipo T chamados item (aqui poderĂ­amos poder qualquer nome) sĂŁo capturados no Array array.
  • Por fim, o System.out.println imprime estes itens.
class Printer { public <T> void printArray(T[] array) { for (T item : array) { System.out.println(item); } } } 
Enter fullscreen mode Exit fullscreen mode

=========

ReferĂŞncias

Generics : DevMedia
Generic Method : Oracle

============

Essa publicação faz parte de uma série de exercícios resolvidos em Java no HackerRank. Acesse a série completa:

Top comments (0)