JavaRush /Java-Blog /Random-DE /So verwenden Sie die vom Java Collections Framework berei...
ramhead
Level 13

So verwenden Sie die vom Java Collections Framework bereitgestellten Sammlungsklassen ArrayList, Vector und HashMap

Veröffentlicht in der Gruppe Random-DE
In diesem Artikel lernen wir die drei wichtigen Sammlungsklassen ArrayList , Vector und HashMap aus dem Collections Framework kennen und beginnen, sie in unserem eigenen Code zu verwenden. So verwenden Sie die vom Java Collections Framework bereitgestellten Sammlungsklassen ArrayList, Vector und HashMap – 1Mithilfe der Klassen „collection“ ArrayListund „collection Vector“ können wir eine Gruppe von Elementen als einfache Objekte speichern und sie mithilfe verschiedener in diesen Klassen verfügbarer Methoden manipulieren. Die Kurse ArrayListund Vectorsind im Paket erhältlich java.util. Eine weitere Klasse ist eine Sammlung, die im Paket java.utilthis verfügbar ist HashMapund es Ihnen ermöglicht, eine Sammlung von Schlüsselwertzuordnungen zu speichern. Dadurch ist es möglich, bei Kenntnis des Schlüssels den gewünschten Wert aus einer Sammlung zu erhalten. Schauen wir uns nacheinander Beispiele an, in denen diese Sammlungsklassen verwendet werden. Beispiel 1. In diesem Beispiel schreiben wir ein einfaches Programm unter Verwendung einer Klasse – der ArrayList-Sammlung. Listing 1. Ausführungscode für Beispiel 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);
    }
}
Das Ausführen dieses Programms erzeugt die folgende Ausgabe:
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
Schauen wir uns das bereitgestellte Beispielprogramm Schritt für Schritt an. In diesem Beispiel importieren wir in der allerersten Zeile des Programms die Klasse – Sammlung ArrayList. Anschließend initialisieren wir abwechselnd ein Array von Zeichenfolgen favouriteCharactersmit den Namen von Personen und favouritelisteiner Instanz der Sammlung ArrayList. Die Methode includeCharacters(args)kann in zwei Teile unterteilt werden. Im ersten Teil der Methode werden Elemente aus dem Array mithilfe einer Schleife zur Sammlung hinzugefügt. In diesem Fall erfolgt das Hinzufügen von Elementen ArrayListin derselben Reihenfolge, in der sie sich im Array befinden. Dies liegt daran, dass wir keine Positionen für die Elemente definieren, die der Sammlung hinzugefügt werden. Im zweiten Teil unserer Methode werden Elemente jedoch mithilfe der Indizierung hinzugefügt. In diesem Fall werden Elemente genau an der angegebenen Position zur Sammlung hinzugefügt. Wenn ein neues Element in der Mitte einer Sammlung hinzugefügt wird ArrayList, werden Elemente, die bereits in dieser Sammlung vorhanden sind und sich jenseits der angegebenen Einfügeposition des neuen Elements befinden, von ihren eigenen an nachfolgende Positionen verschoben, wodurch sich die Größe der Sammlung erhöht. Wenn wir uns zuerst die Ausgabe ansehen, werden wir Folgendes sehen:
Total No of Characters in List: 10
Total No of Characters in Array: 8
Dies liegt daran, dass wir zusätzlich zu dem Array mit 8 Elementen, die hinzugefügt werden ArrayList, explizit zwei weitere Elemente hinzufügen und so die Größe der Sammlung auf 10 erhöhen. Die Methode getCharacterPosition(args)nimmt den Wert eines Elements (Name einer Person) und zeigt die Position an dieses Elements in der Sammlung ArrayList. Wenn kein solches Element vorhanden ist ArrayList, wird der Wert -1 angezeigt. Die Methode removeCharacter(args)entfernt den angegebenen Elementwert (Name der Person) aus der Sammlung und verwendet als Argument entweder den Index dieses Elements oder das Element selbst. Im obigen Code können wir feststellen, dass die Größe unserer Sammlung aufgrund der Tatsache, dass wir zwei Elemente aus der Sammlung entfernt haben, 8 statt 10 geworden ist. Wenn die Größe des Arrays und der Sammlung gleich ist, gibt die Methode die folgenden Zeilen zurück:
The element Harry cannot be removed
The element Dumbledore cannot be removed
Die Ausführung der Methode removeCharacter(args)ist lediglich dadurch bedingt, dass die Größe der Sammlung größer sein muss als die Größe des Arrays. Beispiel 2. In diesem Beispiel schreiben wir ein einfaches Programm unter Verwendung einer Klasse – einer Sammlung. Vector Listing 2. Ausführungscode für Beispiel 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();
        }
}
Das Ausführen dieses Programms erzeugt die folgende Ausgabe:
The characters are Weasley
The characters are Potter
Der obige Code ist nur ein kleines Beispiel und dient als Beweis dafür, dass es keinen großen Unterschied zwischen Sammlungen ArrayListund gibt Vector. Die Sammlung Vectorkann auf die gleiche Weise wie die Sammlung ArrayListmit denselben Methoden manipuliert werden. Beispiel 3. In diesem Beispiel schreiben wir ein einfaches Programm mit der Collection-Klasse. HashMap Listing 3. Ausführungscode für Beispiel 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();
    }
}
Das Ausführen dieses Programms erzeugt die folgende Ausgabe:
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
Schauen wir uns den obigen Code Schritt für Schritt an. In diesem Beispielprogramm haben wir ein Array von Strings, deren Elemente die Namen berühmter Bücher sind. Die Methode mapAuthors()erstellt eine Anzeige von Buchtiteln mit ihren Autoren. Der Schlüssel hier sind die Titel der Bücher, und die Werte sind die Autoren dieser Bücher. Wenn die Methode aufgerufen wird getBookList(), durchläuft sie das Array Booksund ruft die Buchtitel nacheinander ab. Als nächstes prüft die Methode, ob ein Buch einen eigenen Autor hat. Wie wir sehen können, wird die Meldung angezeigt, wenn die Methode den Autor des Buchs nicht finden kann not available. Ansonsten werden der Autor und sein Buch einzeln angezeigt. Fazit: In diesem Artikel haben wir uns ein wenig mit den Klassen – Sammlungen ArrayList, – befasst und versucht Vector, HashMapsie in unserem eigenen Code zu verwenden. Originalartikel: Verwendung der vom Java Collections Framework bereitgestellten ArrayList-, Vector- und HashMap-Klassen
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION