Ola galera será que alguem pode me dizer se existe alguma tabelinha ou algo para decorar
as varias e 1000 maneiras de criar os objetos polimorficamente do tipo Collection?
tipo assim List<? extends Object> lista = new ArrayList();
Criacao objetos Collection
5 Respostas
Existe sim, e é conhecida como Javadoc.
Blz? Flw!
Existe sim, e é conhecida como Javadoc.Blz? Flw!
beleza! mas em portugues nao tem nada por ai so a parte de criacao
Ola galera será que alguem pode me dizer se existe alguma tabelinha ou algo para decorar
as varias e 1000 maneiras de criar os objetos polimorficamente do tipo Collection?
tipo assim List<? extends Object> lista =new ArrayList();
Se vc quer decorar já começa mal. A regra é simples
Interface<ClasseContinaNaColeção> nomeVariável = new ImplementaçãoDaInterface<ClasseContinaNaColeção>();
No seu exemplo, seria
List lista = new ArrayList();
Primeiro escolha a interface com base no que vai fazer com a coleção.
Map, Collection, Set, List, Queue e Deque são os tipos possiveis.
Busca por chave : Map
Permite Repetidos mas não usa busca por indice : Collection
Não permite repetidos : Set
Permite Repetidos com busca por indice : List
Mecanismos de fila : Queue
Depois escolha a implementação:
Interessa a ordem de inserção ?
Use qualquer list ou no caso de set e map use os que começam como Linked como LinkedHashSet.
Se não interessa a ordem no caso de Set e Map use os que começam com Hash.
Se os objetos a serem inseridos são comparáveis ( implementam Comparable ou existe um Comparator ) use TreeSet
Se ha problemas com sincronismo use as implementações de java.concurrent.
Se vc apenas quer preencher a lista e iterar depois use ArrayList ou melhor ainda CopyOnWriteArrayList
Se vc insere e remove muito frequentemente ou itera muito frequentemente use LinkedList.
Terceiro: se usa set ou map os objetos têm que implementar equals e hashCode corretamente. no caso do map, são os objetos chave que precisam implementar isso e não os objetos valor.
obrigado Sergio, mas na verdade queria saber se existe uma regra básica
para costruir objetos tipo:
Collection<?> l=new ArrayList< Object>();
Collection < T extends Number> rt= new ArrayList();
Collection <?> y= new ArrayList();
coisa desse tipo,pergunto pq caiu em um quitz do Caleum
<blockquote><div class="quote-author">fabioEM:</div>obrigado Sergio, mas na verdade queria saber se existe uma regra básica
para costruir objetos tipo:
Collection<?> l=new ArrayList< Object>();
Collection < T extends Number> rt= new ArrayList();
Collection <?> y= new ArrayList();
coisa desse tipo,pergunto pq caiu em um quitz do Caleum</blockquote>
Bom, esse tipo de declaração não faz muito sentido, mas :
? aceita tudo porque não está definido do que é.
T especifica o que pode ser aceito na lista. Isso é definido pelo uso do objeto e não pelo objeto em si. É generico. Dai o nome.
T extends … singifica que vc filtra os T para só poderem subtipos do que vem depois do extends. Por exemplo, T extends Number singifica que aceita Double, Integer, mas não String, por exemplo.
T super … singifica que vc filtra os T para só poderem ser supertipos do que vem depois. Por exemplo, T super Number , aceita number e Object mas não Double ou Integer.
Melhores informações em http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf