Agora é a vês das Collections! Vamos deixar nossa teoria aqui! :lol:
Collection - É a mãe das Colleções, define os métodos de adição, remoção, iterator, size( os principais métodos );
List - É filha da Collection ( List extends Collection ), define mais métodos, sendo que você pode passar o indice indicado qula a posição você esta trabalhando da coleção. Você tem métodos como add(int), get(int) e remove(int). Nesta collection podemos ter elementos repetidos. Implementações mais conhecidas: ArrayList, LinkedList, Vector.
Set - É filha da Collection ( Set extends Collection ), é um conjunto de objetos que não mantém necessariamente uma ordem, logo você não consegue pegar o 5º elemento ou 3º elemento. Não podem existir dois elementos iguais(equals) num mesmo Set. Implementações muis conhecidas: HashSet, TreeSet.
Iterator - Toda collection pode te dar um objeto que implementa esta interface, este objeto sabe exatamente como iteragir(navegar) entre os objetos da collection.
Map - NÃO é filha da Collection, pois trabalha com associação entre objetos(Chaves e Valores). Dada uma chave, você pode recuperar o seu valor. Implementações mais conhecidas: HashMap, HashTable, Properties…
É isso ai Galera! Postem ai O que é interessante para a SCJP!
O Hash é de espalhar, misturar… isso é feito utilizando o hasCode() do objeto isso deixa alguns métodos mais rápido como o contains(Object o), ele vai ser rápido na procura de um elemento na collection.
Quais das coleções abaixo, é a mais indicada para manter uma sequência de objetos, onde esse objetos são frequentemente inseridos e removidos do meio da sequência :?:
a) TreeMap
b) HashSet
c) Vector
d) LinkedList
e) ArrayList
Comente cada item. Depois ponho a resposta e o comentário do livro:
:arrow: “A Programmer’s Guide to Java Certification Second Edition”
:!: na verdade a resposta é LinkedList, pois Vector e ArrayList , segundo o livro, tem um requerem shifting e o Vector além disso é Thread-Safe o q o torna bastante lento
:roll: minha dúvida:
andei fazendo uns teste e verifiquei que qualquer uma das 3 classes (ArrayList,Vector e LinkedList) fazem shiting com o metodo add(Object o) e nao o fazem com o metodo get(index i)
:!: na verdade a resposta é LinkedList, pois Vector e ArrayList , segundo o livro, tem um requerem shifting e o Vector além disso é Thread-Safe o q o torna bastante lento
:roll: minha dúvida:
andei fazendo uns teste e verifiquei que qualquer uma das 3 classes (ArrayList,Vector e LinkedList) fazem shiting com o metodo add(Object o) e nao o fazem com o metodo get(index i)[/quote]
LinkedList!?!?! 8O
Acho que uma lista ligada não serial, ou o livro está errado ou eu… uma lista ligada não poderia ser… ela não é muito boa quando trabalha com os elementos que não sejam de suas estremidades…