JavaRush /จาวาบล็อก /Random-TH /วิธีใช้คลาสคอลเลกชัน ArrayList, Vector และ HashMap ที่จัด...
ramhead
ระดับ

วิธีใช้คลาสคอลเลกชัน ArrayList, Vector และ HashMap ที่จัดทำโดย Java Collections Framework

เผยแพร่ในกลุ่ม
ในบทความนี้ เราจะเรียนรู้เกี่ยวกับคลาสคอลเลกชันที่สำคัญสามคลาสArrayList , VectorและHashMapจากCollections Frameworkและเริ่มใช้งานคลาสเหล่านี้ในโค้ดของเราเอง วิธีใช้คลาสคอลเลกชัน ArrayList, Vector และ HashMap ที่จัดทำโดย Java Collections Framework - 1การใช้คลาสการรวบรวมArrayListและ การรวบรวม Vectorเราสามารถจัดเก็บกลุ่มขององค์ประกอบเป็นวัตถุอย่างง่าย และจัดการโดยใช้วิธีการต่าง ๆ ที่มีอยู่ในคลาสเหล่านี้ ชั้นเรียนArrayListและ มี จำหน่ายVectorตั้งแต่แพ็คเกจ java.utilอีกคลาสหนึ่งคือคอลเลกชันที่หาได้จากแพ็คเกจjava.utilซึ่งHashMapช่วยให้คุณสามารถจัดเก็บคอลเลกชันของการแมปคีย์-ค่าได้ ซึ่งทำให้สามารถรับค่าที่ต้องการจากคอลเลกชันได้เมื่อทราบคีย์ ลองดูตัวอย่างโดยใช้คลาสคอลเลกชันเหล่านี้ทีละรายการ ตัวอย่างที่ 1 ในตัวอย่างนี้ เราจะเขียนโปรแกรมอย่างง่ายโดยใช้คลาส - ArrayList collection Listing 1 โค้ดดำเนินการตัวอย่างที่ 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);
    }
}
การรันโปรแกรมนี้จะสร้างผลลัพธ์ดังต่อไปนี้:
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
มาดูตัวอย่างโปรแกรมที่ให้มาทีละขั้นตอนกัน ArrayListในตัวอย่าง นี้ในบรรทัดแรกของโปรแกรม เรานำเข้า class - collection จากนั้น เราผลัดกันเริ่มต้นอาร์เรย์ของสตริงfavouriteCharactersที่มีชื่อของบุคคลและfavouritelistอินสแตนซ์ของคอลเลกArrayListชัน วิธีการincludeCharacters(args)สามารถแบ่งออกเป็นสองส่วน ในส่วนแรกของวิธีการ องค์ประกอบจะถูกเพิ่มจากอาร์เรย์ไปยังคอลเลกชันโดยใช้การวนซ้ำ ในกรณีนี้ การเพิ่มองค์ประกอบจะArrayListกระทำในลำดับเดียวกันกับที่องค์ประกอบเหล่านั้นอยู่ในอาร์เรย์ สิ่งนี้เกิดขึ้นเนื่องจากเราไม่ได้กำหนดตำแหน่งใดๆ ขององค์ประกอบที่เพิ่มลงในคอลเลกชัน แต่ในส่วนที่สองของวิธีการของเรา องค์ประกอบต่างๆ จะถูกเพิ่มโดยใช้การจัดทำดัชนี ในกรณีนี้ องค์ประกอบจะถูกเพิ่มไปยังคอลเลกชันในตำแหน่งที่แน่นอนที่ระบุ เมื่อมีการเพิ่มองค์ประกอบใหม่ลงตรงกลางของคอลเลกชันArrayListองค์ประกอบที่มีอยู่แล้วในคอลเลกชันนั้นซึ่งอยู่นอกเหนือตำแหน่งการแทรกที่ระบุขององค์ประกอบใหม่จะถูกเลื่อนไปยังตำแหน่งต่อจากองค์ประกอบเหล่านั้นเอง ซึ่งจะเพิ่มขนาดของคอลเลกชัน เมื่อเราดูผลลัพธ์ก่อนเราจะเห็น:
Total No of Characters in List: 10
Total No of Characters in Array: 8
เนื่องจากนอกเหนือจากอาร์เรย์ที่มี 8 องค์ประกอบซึ่งถูกเพิ่มเข้าไปในArrayListเรายังเพิ่มองค์ประกอบอีก 2 องค์ประกอบอย่างชัดเจน ซึ่งจะเป็นการเพิ่มขนาดของคอลเลกชันเป็น 10 วิธีgetCharacterPosition(args)การรับค่าขององค์ประกอบ (ชื่อบุคคล) และแสดงตำแหน่ง ขององค์ประกอบนี้ในคอลเลกArrayListชัน หากไม่มีองค์ประกอบดังกล่าวในArrayListค่า -1 จะปรากฏขึ้น วิธีการremoveCharacter(args)ลบค่าองค์ประกอบที่ระบุ (ชื่อของบุคคล) ออกจากคอลเลกชัน โดยใช้เป็นอาร์กิวเมนต์ดัชนีขององค์ประกอบนั้นหรือองค์ประกอบนั้นเอง ในโค้ดด้านบน เราจะสังเกตเห็นว่าขนาดของคอลเลกชันของเรากลายเป็น 8 แทนที่จะเป็น 10 เนื่องจากเราได้ลบ 2 องค์ประกอบออกจากคอลเลกชัน หากขนาดของอาร์เรย์และคอลเลกชันเท่ากัน ดังนั้นเมธอดจะส่งกลับบรรทัดต่อไปนี้:
The element Harry cannot be removed
The element Dumbledore cannot be removed
การดำเนินการของเมธอดremoveCharacter(args)จะถูกกำหนดเงื่อนไขโดยข้อเท็จจริงที่ว่าขนาดของคอลเลกชันต้องมากกว่าขนาดของอาร์เรย์เท่านั้น ตัวอย่างที่ 2 ในตัวอย่างนี้เราจะเขียนโปรแกรมอย่างง่ายโดยใช้คลาส - คอลเลกชั่นVector Listing 2. โค้ดดำเนินการตัวอย่างที่ 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();
        }
}
การรันโปรแกรมนี้จะสร้างผลลัพธ์ดังต่อไปนี้:
The characters are Weasley
The characters are Potter
โค้ดข้างต้นเป็นเพียงตัวอย่างเล็กๆ น้อยๆ เพื่อเป็นข้อพิสูจน์ว่าไม่มีความแตกต่างกันมากนักระหว่างคอลเลกชั่นArrayListและVector. คอลเลกชันVectorสามารถจัดการได้ในลักษณะเดียวกับคอลเลกชันArrayListโดยใช้วิธีการเดียวกัน ตัวอย่างที่ 3 ในตัวอย่างนี้ เราจะเขียนโปรแกรมอย่างง่ายโดยใช้คลาสคอลเลกชันHashMap Listing 3 โค้ดดำเนินการสำหรับตัวอย่างที่ 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();
    }
}
การรันโปรแกรมนี้จะสร้างผลลัพธ์ดังต่อไปนี้:
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
มาดูโค้ดโปรแกรมด้านบนกันทีละขั้นตอน ในโปรแกรมตัวอย่างนี้ เรามีอาร์เรย์ของสตริงที่มีองค์ประกอบเป็นชื่อของหนังสือที่มีชื่อเสียง วิธีการนี้mapAuthors()จะสร้างการแสดงชื่อหนังสือร่วมกับผู้แต่ง กุญแจสำคัญที่นี่คือชื่อหนังสือ และคุณค่าคือผู้เขียนหนังสือเหล่านั้น เมื่อเรียกใช้เมธอดgetBookList()มันจะวนซ้ำในอาร์เรย์Booksและรับชื่อหนังสือทีละชื่อ ถัดไป วิธีการตรวจสอบว่าหนังสือเล่มใดมีผู้แต่งเป็นของตัวเองหรือไม่ not availableดังที่เราเห็น หากวิธีการไม่พบผู้ แต่งหนังสือ ข้อความก็จะปรากฏขึ้น มิฉะนั้น ผู้แต่งและหนังสือของเขาจะแสดงทีละเล่ม สรุป: ในบทความนี้ เราได้ศึกษาเพียงเล็กน้อยเกี่ยวกับคลาส - collections ArrayListและVectorพยายามHashMapใช้ในโค้ดของเราเอง บทความต้นฉบับ: วิธีใช้คลาส ArrayList, Vector และ HashMap ที่จัดทำโดย Java Collections Framework
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION