JavaRush /Java Blog /Random-IT /Come utilizzare le classi di raccolta ArrayList, Vector e...
ramhead
Livello 13

Come utilizzare le classi di raccolta ArrayList, Vector e HashMap fornite da Java Collections Framework

Pubblicato nel gruppo Random-IT
In questo articolo impareremo a conoscere tre importanti classi di raccolta ArrayList , Vector e HashMap dal Collections Framework e inizieremo a usarle nel nostro codice. Come utilizzare le classi di raccolta ArrayList, Vector e HashMap fornite da Java Collections Framework - 1Utilizzando la collezione ArrayListe le classi di raccolta Vector, possiamo memorizzare un gruppo di elementi come semplici oggetti e manipolarli utilizzando vari metodi disponibili in queste classi. Le lezioni ArrayListsono Vectordisponibili nel pacchetto java.util. Un'altra classe è una raccolta, disponibile nel pacchetto java.util, questa HashMap, che consente di archiviare una raccolta di mappature di valori-chiave. Ciò consente di ottenere il valore desiderato da una raccolta quando la chiave è nota. Diamo un'occhiata agli esempi che utilizzano queste classi di raccolta una per una. Esempio 1. In questo esempio, scriveremo un semplice programma utilizzando una classe: la raccolta ArrayList . Listato 1. Codice di esecuzione per l'esempio 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);
    }
}
L'esecuzione di questo programma produrrà il seguente output:
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
Diamo un'occhiata al programma di esempio fornito, passo dopo passo. In questo esempio, nella primissima riga del programma, importiamo la class - collection ArrayList. Successivamente, a turno, inizializziamo un array di stringhe favouriteCharacterscontenenti i nomi delle persone e favouritelistun'istanza della collection ArrayList. Il metodo includeCharacters(args)può essere diviso in due parti. Nella prima parte del metodo, gli elementi vengono aggiunti dall'array alla raccolta utilizzando un ciclo. In questo caso, l'aggiunta di elementi ArrayListviene eseguita nello stesso ordine in cui si trovano nell'array. Ciò accade perché non definiamo alcuna posizione per gli elementi che vengono aggiunti alla raccolta. Ma nella seconda parte del nostro metodo, gli elementi vengono aggiunti utilizzando l'indicizzazione. In questo caso, gli elementi vengono aggiunti alla raccolta nella posizione esatta specificata. Quando un nuovo elemento viene aggiunto al centro di una raccolta ArrayList, gli elementi già esistenti in quella raccolta che si trovano oltre la posizione di inserimento specificata del nuovo elemento vengono spostati in posizioni successive dalla propria, aumentando così la dimensione della raccolta. Quando guardiamo prima l'output, vedremo:
Total No of Characters in List: 10
Total No of Characters in Array: 8
Questo perché oltre all'array di 8 elementi, che vengono aggiunti a ArrayList, aggiungiamo esplicitamente altri 2 elementi, aumentando così la dimensione della raccolta a 10. Il metodo getCharacterPosition(args)prende il valore di un elemento (nome della persona) e visualizza la posizione di questo elemento nella collezione ArrayList. Se tale elemento non è presente in ArrayList, viene visualizzato il valore -1. Il metodo removeCharacter(args)rimuove il valore dell'elemento specificato (nome della persona) dalla raccolta, prendendo come argomento l'indice di quell'elemento o l'elemento stesso. Nel codice sopra, possiamo notare che la dimensione della nostra collezione è diventata 8 invece di 10 perché abbiamo rimosso 2 elementi dalla collezione. Se le dimensioni dell'array e della raccolta sono le stesse, il metodo restituisce le seguenti righe:
The element Harry cannot be removed
The element Dumbledore cannot be removed
L'esecuzione del metodo removeCharacter(args)è condizionata solo dal fatto che la dimensione della collezione deve essere maggiore della dimensione dell'array. Esempio 2. In questo esempio, scriveremo un semplice programma utilizzando una classe, una raccolta. Vector Listato 2. Codice di esecuzione dell'esempio 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();
        }
}
L'esecuzione di questo programma produrrà il seguente output:
The characters are Weasley
The characters are Potter
Il codice sopra riportato è solo un piccolo esempio, fornito come prova che non c'è molta differenza tra raccolte ArrayListe file Vector. La raccolta Vectorpuò essere manipolata allo stesso modo della raccolta ArrayList, utilizzando gli stessi metodi. Esempio 3. In questo esempio scriveremo un semplice programma utilizzando la classe collection HashMap Listato 3. Codice di esecuzione per l'Esempio 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();
    }
}
L'esecuzione di questo programma produrrà il seguente output:
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
Diamo un'occhiata al codice sopra, passo dopo passo. In questo programma esempio abbiamo un array di stringhe i cui elementi sono i nomi di libri famosi. Il metodo mapAuthors()crea una visualizzazione dei titoli dei libri con i relativi autori. Le chiavi qui sono i titoli dei libri e i valori sono gli autori di quei libri. Quando il metodo viene chiamato getBookList(), scorre l'array Bookse ottiene i titoli dei libri uno per uno. Successivamente, il metodo controlla se un libro ha il proprio autore. Come possiamo vedere, se il metodo non riesce a trovare l'autore del libro, viene visualizzato il messaggio not available. Altrimenti l'autore e il suo libro verranno visualizzati uno per uno. Conclusione: in questo articolo abbiamo studiato un po' le classi - collection ArrayList, Vectore HashMapabbiamo provato a usarle nel nostro codice. Articolo originale: come utilizzare le classi ArrayList, Vector e HashMap fornite da Java Collections Framework
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION