Diferença entre Tree<E> e Tree<T>?

Certas classes de implementação de Trees tem T e outras E qual a diferença?

Isso é apenas uma convenção, veja:

Type Parameter Naming Conventions

  • E - Element (used extensively by the Java Collections Framework)
  • K - Key
  • N - Number
  • T - Type
  • V - Value
  • S,U,V etc. - 2nd, 3rd, 4th types

FONTE: https://docs.oracle.com/javase/tutorial/java/generics/types.html

5 curtidas

obrigado!!

Só pra constar que isso é uma convenção, porque tecnicamente você pode colocar qualquer identificador válido. Por exemplo:

public class Calculo<Valor, Resultado>{
    etc...
}

Para dizer que a classe é responsável por fazer um cálculo com um determinado tipo (o Valor), e retorna o resultado de outro tipo (Resultado).

Mas o mais comum acaba sendo usar as convenções mesmo, algo como public class Calculo<V, T>. Até porque já pode ter uma classe chamada Resultado e causar certa confusão (já uma classe chamada T é menos provável - se tiver, provavelmente tem coisa errada, pois uma classe deveria ter um nome mais significativo).

1 curtida

obrigado!