Duvida sobre Collection e Collections?

Olá pessoal,

estou estudando Collection e pintou algumas duvidas e gostaria de ver alguma documentação ou explicação sobre o assunto…

Pois vi Collections e Collection uma hora usa List outra usa

Collection lista = new ArraList();

List listao = new ArrayList()

TreeSet …

O que usar o que é melhor usar …umas duvidas ???

Qual interface que não deixa entrar duplicada ???

Qual a diferença entre Collections e Collection ?

Quais são as interfaces da Collection ou Collections …

Fiquei com mais duvidas ainda …

Se alguém puder me ajudar …agradecria

abs

Olá pessoal,

uma ajuda pois não compreendi Collection …pois uso no dia a dia e nunca fui através pra ver como funciona…agora que estou estudando pra prova tenho que entender…

Vamos ver se podem me ajudar na minha duvida coo sei quando usar :

Collection lista = new ArrayList(); // porque usar Arrayist com Collection
// porque usar ArrayList com List

List listao = new ArrayList();

Queria entender como é feita essa associação de classe com interface …???

Uso no dia a dia pois tem no template do projeto e agora queria saber melhor…
como usar TreeSet com o que Collection,List ??? essa é minha duvida ???

Se alguém puder me ajudar …dar uma luz

abs

Key Interfaces and Classes of the Collections Framework

Collection 
 Set 
 SortedSet 
 
List 
 Map 
 SortedMap 
 
Queue


he core concrete implementation classes you need to know for the exam 

Maps 
 Sets 
 Lists 
 Queues 
 Utilities 
 
HashMap 
 HashSet 
 ArrayList 
 PriorityQueue 
 Collections 
 
Hashtable 
 LinkedHashSet 
 Vector 
   Arrays 
 
TreeMap 
 TreeSet 
 LinkedList 
     
LinkedHashMap 

[quote=paribe]O que usar o que é melhor usar …umas duvidas ???

Qual interface que não deixa entrar duplicada ???

Qual a diferença entre Collections e Collection ?

Quais são as interfaces da Collection ou Collections …[/quote]

Bem, o melhor a usar depende sempre do caso. Leia todo o Trail sobre Collections da Sun: http://java.sun.com/docs/books/tutorial/collections/index.html

Para não duplicar elementos, use a interface Set e a instancie com as classes que a implementam.

Collections é uma classe utilitária com operações comuns para se fazerem em uma Collection, por exemplo, tem o sort que ordena, shuffle que embaralha, reverse que coloca a ordem ao contrário, max e min para achar os maiores e menores elementos, e muitos outros.

Collection é somente a interface que classes que a implementam tem que seguir.

As interfaces e classes estão no primeiro link que dei, e também dá pra achar olhando o javadoc do Collection: http://java.sun.com/javase/6/docs/api/java/util/Collection.html

[quote=paribe]Olá pessoal,

estou estudando Collection e pintou algumas duvidas e gostaria de ver alguma documentação ou explicação sobre o assunto…

O que usar o que é melhor usar …umas duvidas ???

Qual interface que não deixa entrar duplicada ???

Qual a diferença entre Collections e Collection ?

Quais são as interfaces da Collection ou Collections …
[/quote]

Collections e Arrays ( com s ) são duas classes auxiliares. A primeira serve para fazer operações sobre coleções e a segunda para fazer operações sobre arrays. Arrays tem um método que trasnforma um array qualquer numa lista e assim faz a ponte entre os dois mundos ( Arrays.asList() )

Collection é a mãe de todas as coleções. List funciona com ose fosse um array porque vc tem indices numericos para cada elemento. Permite repetidos. Set funciona como um conjunto, ou seja, não permite repetidos. Também não tem indices numéricos.

Quando vc escolhe uma coleção para um tipo de váriável vc tem que escolher baseado no seguinte :

Posso ter elementos repetidos ? Se não use Set a acaba a conversa.
Se sim: é realmente necessário ter um indice para cada elemento ? Se sim, use List, se não use Collection.

O prefixo “Tree” (arvore) significa que um altoritmo especial será usado. Para utilziar TreeXXXX os elementos dentro da começão devem implementar Comparable. É bom quando utiliza os objetos padrão como String, Integer, BigDecimal, etc…
O prefixo “Linked” (ligado) signifca que um algoritmo especial será usado que mantém a ordem de inserção dos elementos.

Para mais detalhes leia isto

Esse tópico também pode te ajudar a entender melhor a questão:
http://www.guj.com.br/posts/list/55387.java#290673