JavaRush /Blogue Java /Random-PT /Como usar as classes de coleção ArrayList, Vector e HashM...
ramhead
Nível 13

Como usar as classes de coleção ArrayList, Vector e HashMap fornecidas pelo Java Collections Framework

Publicado no grupo Random-PT
Neste artigo, aprenderemos sobre três importantes classes de coleção ArrayList , Vector e HashMap do Collections Framework e começaremos a usá-las em nosso próprio código. Como usar as classes de coleção ArrayList, Vector e HashMap fornecidas pelo Java Collections Framework - 1Usando as classes coleção ArrayListe coleção Vector, podemos armazenar um grupo de elementos como objetos simples e manipulá-los usando vários métodos disponíveis nessas classes. As aulas ArrayListe Vectorestão disponíveis no pacote java.util. Outra classe é uma coleção, disponível no pacote java.util, HashMapque permite armazenar uma coleção de mapeamentos de valores-chave. Isso permite obter o valor desejado da coleção quando a chave é conhecida. Vejamos exemplos usando essas classes de coleção, uma por uma. Exemplo 1. Neste exemplo, escreveremos um programa simples usando uma classe - a coleção ArrayList Listagem 1. Código de execução por exemplo 1
// подключаем класс
import java.util.ArrayList;
public class ArrayListExample {
  static String[] favouriteCharacters = {"Harry", "Ron", "Hermione",  "Snape", "Dumbledore", "Moody", "Riddle", "Fred"};
   int i;
   public ArrayList favouritelist = new ArrayList();
// метод добавляет элементы ‘favouriteCharacters’ в ‘favouritelist’
 private void includeCharacters(String[]favouriteCharacters)
       {
        for (i = 0; i < favouriteCharacters.length; i++) {
            // добавление элементов по одному из массива ‘favouriteCharacters’
            favouritelist.add(favouriteCharacters[i]);
            printCharacters(i);
        }
// добавление элементов, посредством указания позиций
        favouritelist.add(1, "george");
        favouritelist.add(4, "Peter");
    }
// метод выводит элемент ‘favouritelist’ по указанной позиции
    private void printCharacters(int i) {
        System.out.println("Character " + (i + 1) + ":" + favouritelist.get(i));
    }
// метод выводит все элементы ‘favouritelist’
    private void printCharacters() {
        System.out.println("\n");
        for(int i=0;i<favouritelist.size();i++){
        System.out.println("Character" + (i + 1) + ":" + favouritelist.get(i));
    }    }
// метод возвращает размер коллекции ‘favouritelist’
    private int sizeofCharactersList() {
        System.out.println("\n");
        System.out.println("Total No of Characters in Array:" + favouriteCharacters.length);
        System.out.println("Total No of Characters in List:" + favouritelist.size());
        return favouritelist.size();
    }
// метод выводит позицию element ‘favouritelist’ по указанному имени
 public void getCharacterPostion(String characterName) {
     System.out.println("\n");
        System.out.println("The position of the character\t" + characterName + "\tis\t" + favouritelist.indexOf(characterName));
    }
// метод удаляет элемент ‘favouritelist’ по указанному имени
    public void removeCharacter(String characterName) {
        if(favouritelist.size()>favouriteCharacters.length){
        favouritelist.remove(characterName);
        }
        else{
             System.out.println("\n");
             System.out.println("The element\t"+favouritelist.get(favouritelist.indexOf(characterName))+"\tcannot be removed");
        }
        }
// метод удаляет элемент ‘favouritelist’ по указанной позиции
    public void removeCharacter(int i) {
        if(favouritelist.size()>favouriteCharacters.length){
        favouritelist.remove(i);
          }
        else{
            System.out.println("The element\t"+favouritelist.get(i)+"\tcannot be removed");
        }
    }
    public static void main(String args[]) {
        ArrayListExample example = new ArrayListExample();
        example.includeCharacters(favouriteCharacters);
        example.printCharacters();
        int size = example.sizeofCharactersList();
        example.getCharacterPostion("Ron");
        example.removeCharacter("Snape");
        example.removeCharacter(2);
        example.sizeofCharactersList();
        example.removeCharacter("Harry");
         example.removeCharacter(4);
    }
}
A execução deste programa produzirá a seguinte saída:
Character 1:Harry
Character 2:Ron
Character 3:Hermione
Character 4:Snape
Character 5:Dumbledore
Character 6:Moody
Character 7:Riddle
Character 8:Fred


Character1:Harry
Character2:george
Character3:Ron
Character4:Hermione
Character5:Peter
Character6:Snape
Character7:Dumbledore
Character8:Moody
Character9:Riddle
Character10:Fred


Total No of Characters in Array:8
Total No of Characters in List:10


The position of the character	Ron	is	2


Total No of Characters in Array:8
Total No of Characters in List:8


The element	Harry	cannot be removed
The element	Dumbledore	cannot be removed
Vejamos o programa de exemplo fornecido, passo a passo. Neste exemplo, logo na primeira linha do programa, importamos a classe -coleção ArrayList. Em seguida, nos revezamos na inicialização de um array de strings favouriteCharacterscontendo os nomes de pessoas e favouritelistuma instância da coleção ArrayList. O método includeCharacters(args)pode ser dividido em duas partes. Na primeira parte do método, os elementos do array são adicionados à coleção por meio de um loop. Nesse caso, a adição de elementos ArrayListé feita na mesma ordem em que estão localizados no array. Isso acontece porque não definimos nenhuma posição para os elementos que são adicionados à coleção. Mas na segunda parte do nosso método, os elementos são adicionados usando indexação. Neste caso, os elementos são adicionados à coleção na posição exata especificada. Quando um novo elemento é adicionado ao meio de uma coleção ArrayList, os elementos já existentes nessa coleção que estão localizados além da posição de inserção especificada do novo elemento são deslocados para posições subsequentes das suas próprias, aumentando assim o tamanho da coleção. Quando olharmos primeiro para a saída, veremos:
Total No of Characters in List: 10
Total No of Characters in Array: 8
Isso porque além do array ter 8 elementos, que são somados ao ArrayList, adicionamos explicitamente mais 2 elementos, aumentando assim o tamanho da coleção para 10. O método getCharacterPosition(args)pega o valor de um elemento (nome da pessoa) e exibe a posição deste elemento na coleção ArrayList. Se não existir tal elemento ArrayList, o valor -1 será exibido. O método removeCharacter(args)remove o valor do elemento especificado (nome da pessoa) da coleção, tomando como argumento o índice desse elemento ou o próprio elemento. No código acima, podemos notar que o tamanho da nossa coleção passou a ser 8 em vez de 10 devido ao fato de termos removido 2 elementos da coleção. Se os tamanhos do array e da coleção forem iguais, o método retornará as seguintes linhas:
The element Harry cannot be removed
The element Dumbledore cannot be removed
A execução do método removeCharacter(args)está condicionada apenas ao fato de que o tamanho da coleção deve ser maior que o tamanho do array. Exemplo 2. Neste exemplo escreveremos um programa simples usando uma classe - uma coleção Vector Listagem 2. Código de execução do exemplo 2
// подключаем класс
import java.util.Vector;
public class VectorExample {
    Vector vector=new Vector();
    public void addCharacterandPrint(){
        vector.add("Weasley");
        vector.add("Potter");
        for(int i=0;i<vector.size();i++){
        System.out.println("The characters are\t"+vector.get(i));
        }
    }
    public static void main(String args[]){
        VectorExample example=new VectorExample();
        example.addCharacterandPrint();
        }
}
A execução deste programa produzirá a seguinte saída:
The characters are Weasley
The characters are Potter
O código acima é apenas uma pequena amostra, fornecida como prova de que não há muita diferença entre coleções ArrayListe Vector. A coleção Vectorpode ser manipulada da mesma forma que a coleção ArrayList, utilizando os mesmos métodos. Exemplo 3. Neste exemplo, escreveremos um programa simples usando a classe-coleção HashMap Listagem 3. Código de execução para o Exemplo 3
// подключаем класс
import java.util.HashMap;
public class HashMapExample {
    HashMap hashMap=new HashMap();
    String Books[]={"Famous Five","Goosebumps","Robinson Crusueo","Nancy Drew","The Cell","The Davinci Code","Harry Potter"};
    public void mapAuthors(){
        hashMap.put("Famous Five","Enid Blyton");
        hashMap.put("Goosebumps","R.L.Stine");
        hashMap.put("Nancy Drew","Carolyn Keene");
        hashMap.put("The Cell","Christopher Pike");
        hashMap.put("The Davinci Code","Dan Brown");
        hashMap.put("Harry Potter","J.K. Rowling");
    }
    public void getBookList(){
        for(int i=0;i<Books.length;i++){
            if(hashMap.containsKey(Books[i])){
                System.out.println("Author"+(i+1)+":\t"+hashMap.get(Books[i])+"\t"+Books[i]);
            }
            else{
                System.out.println("\nThe Imformation about the author of the book\t"+Books[i]+"\tis not available\n");
            }
        }
    }
    public static void main(String args[]){
        HashMapExample hashMapExample=new HashMapExample();
        hashMapExample.mapAuthors();
        hashMapExample.getBookList();
    }
}
A execução deste programa produzirá a seguinte saída:
Author1: Enid Blyton Famous Five
Author2: R.L.Stine Goosebumps
The Information about the author of the book Robinson Crusueo is not available
Author4: Carolyn Keene Nancy Drew
Author5: Christopher Pike The Cell
Author6: Dan Brown The Davinci Code
Author7: J.K. Rowling Harry Potter
Vejamos o código do programa acima, passo a passo. Neste programa de exemplo, temos um array de strings cujos elementos são nomes de livros famosos. O método mapAuthors()cria uma exibição de títulos de livros com seus autores. As chaves aqui são os títulos dos livros, e os valores são os autores desses livros. Quando o método é chamado getBookList(), ele percorre o array Bookse obtém os títulos dos livros um por um. A seguir, o método verifica se algum livro possui autor próprio. Como podemos ver, se o método não conseguir encontrar o autor do livro, a mensagem será exibida not available. Caso contrário, o autor e seu livro serão exibidos um por um. Conclusão: Neste artigo estudamos um pouco sobre as classes - coleções ArrayList, Vector, HashMape tentamos utilizá-las em nosso próprio código. Artigo original: Como usar as classes ArrayList, Vector e HashMap fornecidas pelo Java Collections Framework
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION