Anda di halaman 1dari 4

FACULDADE CENECISTA DE SETE LAGOAS

BACHARELADO EM SISTEMAS DE INFORMAO Disciplina: Linguagem de Programao III Professor: Tlio Teixeira Cota

Collees Co ees
Em Java, existe um framework, denominado Collections, responsvel por tratar de colees de dados, ou seja, possui implementaes capazes de simplificar operaes com um conjunto de informaes, como, por exemplo, ordenar valores, realizar uma busca binria, inserir valores em uma determinada posio da coleo, dentre vrios outros. A utilizao de coleo, na maioria das vezes, supre a necessidade de usar arrays (ou vetores). Existem vrios tipos de colees, cada uma voltada para uma determinada aplicao. A estrutura bsica (interfaces) do Java Collections Framework pode ser visualizada abaixo:

Collection: interface-pai. Interface genrica. Possui as definies dos mtodos comuns a todas as colees, como adicionar um novo objeto, remover, informar o tamanho da coleo (quantos objetos) etc. Set: fornece mtodos relativos a colees que devem ser tratadas como conjuntos. Assim como um conjunto, as classes que implementam esta interface no podem conter elementos repetidos. SortedSet: utiliza-se a interface SortedSet para situaes onde necessrio ordenar os elementos de um conjunto (Set) no momento do armazenamento. List: funciona como uma lista. uma coleo, que, ao contrrio da inferface Set, pode conter valores duplicados. Alm disso, temos controle total sobre a posio onde se encontra cada elemento da coleo, podendo acessar cada um deles pelo ndice. Queue: normalmente, utiliza-se esta interface quando queremos uma coleo do tipo FIFO (First-In-FirstOut), tambm conhecida como fila. Map: coleo utilizada quando se deseja uma relao de chave-valor entre os elementos. Cada chave pode conter apenas um nico valor associado. SortedMap: utiliza-se a interface SortedMap para situaes onde necessrio ordenar os elementos de um Map no momento do armazenamento.

FACULDADE CENECISTA DE SETE LAGOAS


BACHARELADO EM SISTEMAS DE INFORMAO Disciplina: Linguagem de Programao III Professor: Tlio Teixeira Cota

ENTENDENDO MELHOR AS INTERFACES E ALGUMAS CLASSES CONCRETAS

List (interface)

Interface que estende Collection, e que define colees ordenadas (sequncias), onde se tem o controle total sobre a posio de cada elemento, identificado por um ndice numrico. Na maioria dos casos, pode ser encarado como um "array de tamanho varivel" pois, como os arrays primitivos, acessvel por ndices, mas alm disso possui mtodos de insero e remoo. ArrayList (classe concreta) Implementao de List que utiliza internamente um array de objetos. Em uma insero onde o tamanho do array interno no suficiente, um novo array alocado e todo o contedo copiado para o novo array. Em uma insero no meio da lista (ndice < tamanho), o contedo posterior ao ndice deslocado em uma posio. Esta implementao a recomendada quando o tamanho da lista previsvel (evitando realocaes) e as operaes de insero e remoo so feitas, em sua maioria, no fim da lista (evitando deslocamentos), ou quando a lista mais lida do que modificada (otimizado para leitura aleatria). LinkedList (classe concreta) Implementao de List que utiliza internamente uma lista encadeada. A localizao de um elemento na nsima posio feita percorrendo-se a lista da ponta mais prxima at o ndice desejado. A insero feita pela adio de novos ns, entre os ns adjacentes, sendo que antes necessria a localizao desta posio. Esta implementao recomendada quando as modificaes so feitas em sua maioria tanto no incio quanto no final da lista, e o percorrimento feito de forma sequencial (via Iterator) ou nas extremidades, e no aleatria (por ndices). Um exemplo de uso como um fila (FIFO - First-In-First-Out), onde os elementos so retirados da lista na mesma sequncia em que so adicionados. Vector (classe concreta) Implementao de List com o mesmo comportamento da ArrayList, porm, totalmente sincronizada. Por ter seus mtodos sincronizados, tem performance inferior ao de uma ArrayList, mas pode ser utilizado em um

FACULDADE CENECISTA DE SETE LAGOAS


BACHARELADO EM SISTEMAS DE INFORMAO Disciplina: Linguagem de Programao III Professor: Tlio Teixeira Cota

ambiente multitarefa (acessado por vrias threads) sem perigo de perda da consistncia de sua estrutura interna.

Set (interface)

Principal classe concreta: HashSet

SortedSet (interface)

Principal classe concreta: TreeSet

Map (interface)

Principal classe concreta: HashMap

SortedMap (interface)

Principal classe concreta: TreeMap

FACULDADE CENECISTA DE SETE LAGOAS


BACHARELADO EM SISTEMAS DE INFORMAO Disciplina: Linguagem de Programao III Exemplo de utilizao do ArrayList Professor: Tlio Teixeira Cota

Imagine ter que alocar mais um espao da memria para aumentar a capacidade de um vetor (pense em ponteiro na linguagem C). Imagine ter que remover um valor de um vetor. Retirar o valor e reordenar o vetor. Imagine ter que realizar a ordenao de um valor em ordem crescente ou decrescente... encontrar um valor qualquer... encontrar o valor mximo... encontrar o valor mnimo... inverter a ordem de um vetor... A interface Collection possibilita a automatizao disso tudo... //Criao e instanciao de uma lista List<String> lista = new ArrayList<String>(); // Generics a lista s aceitar valores do tipo String lista.add(Tlio); lista.add(Fulano); lista.add(1, Teste); //se o ndice for invlido, ser gerada uma exceo lista.contains (Tlio); // retorna o valor true List<String> lista2 = new ArrayList<String>(); lista.containsAll (lista2); // retorna true se uma lista possui o mesmo contedo da outra lista.equals(lista2); // retorna true se lista for igual a lista2 System.out.println(lista.get(0)); // retorna Tlio System.out.println(lista.indexOf(Tlio)); // retorna 0 System.out.println(lista.lastIndexOf(Tlio)); // retorna o ndice do ltimo elemento encontrado lista.clear(); // limpa a lista. Remove todos os objetos. lista.isEmpty(); // Verifica se a lista est vazia lista.remove (Fulano); // Remove o objeto Fulano lista.remove (0); // Remove o primeiro objeto lista.removeAll(lista2); // Remove todos os objetos da lista2 que estiverem em lista lista.set(1, Ciclano); // Altera o objeto da posio 1 lista.size(); // Retorna a quantidade de elementos da lista List<String> listaTemp = lista.subList(0,2); // Copia da posio 0 at a posio 1 (2 objetos) Collections.sort(list); // Ordena o vetor em ordem crescente Collections.sort(list, Collections.reverseOrder()); // Ordena o vetor em ordem decrescente Collections.binarySearch(lista, Ciclano); // Retorna a posio (1) Collections.shuffle(lista); // Embaralha a lista Collections.reverse (lista); // Inverte a ordem da lista Collections.fill (lista, Nomes); // Preenche todas os objetos com Nomes Collections.copy (lista2, lista); // Copia o contedo da lista para a lista2 Collections.max(lista); // Retorna o maior valor da lista Collections.min(lista); // Retorna o menor valor da lista OBSERVAO: deve-se utilizar em Collections apenas objetos. No permitida a insero de tipos primitivos. Assim, variveis do tipo int, float, double no so permitidas. Para tanto, deve-se utilizar classes Wrappers (Integer, Float, Double).

Anda mungkin juga menyukai