JavaRush /Blog Java /Random-VI /Cách sử dụng các lớp bộ sưu tập ArrayList, Vector và Hash...
ramhead
Mức độ

Cách sử dụng các lớp bộ sưu tập ArrayList, Vector và HashMap do Java Collections Framework cung cấp

Xuất bản trong nhóm
Trong bài viết này, chúng ta sẽ tìm hiểu về ba lớp bộ sưu tập quan trọng ArrayList , VectorHashMap từ Khung công tác Bộ sưu tập và bắt đầu sử dụng chúng trong mã của riêng chúng ta. Cách sử dụng các lớp sưu tập ArrayList, Vector và HashMap do Java Collections Framework cung cấp - 1Bằng cách sử dụng các lớp sưu tập ArrayListvà sưu tập Vector, chúng ta có thể lưu trữ một nhóm phần tử dưới dạng các đối tượng đơn giản và thao tác với chúng bằng nhiều phương thức khác nhau có sẵn trong các lớp này. Các lớp học ArrayListVectorcó sẵn từ gói java.util. Một lớp khác là một bộ sưu tập, có sẵn trong gói java.util, HashMapcho phép bạn lưu trữ một tập hợp các ánh xạ khóa-giá trị. Điều này giúp có thể nhận được giá trị mong muốn từ bộ sưu tập khi biết khóa. Chúng ta hãy xem từng ví dụ sử dụng các lớp sưu tập này. Ví dụ 1. Trong ví dụ này, chúng ta sẽ viết một chương trình đơn giản sử dụng một lớp - bộ sưu tập ArrayList (Danh sách 1). Mã thực thi ví dụ 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);
    }
}
Chạy chương trình này sẽ tạo ra kết quả sau:
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
Chúng ta hãy xem chương trình ví dụ được cung cấp từng bước một. Trong ví dụ này, ngay dòng đầu tiên của chương trình, chúng tôi nhập lớp - bộ sưu tập ArrayList. Sau đó, chúng tôi lần lượt khởi tạo một mảng chuỗi favouriteCharacterschứa tên người và favouritelistmột phiên bản của bộ sưu tập ArrayList. Phương pháp này includeCharacters(args)có thể được chia thành hai phần. Trong phần đầu tiên của phương thức, các phần tử được thêm từ mảng vào tập hợp bằng vòng lặp. Trong trường hợp này, việc thêm các phần tử vào ArrayListđược thực hiện theo đúng thứ tự chúng được đặt trong mảng. Điều này xảy ra vì chúng tôi không xác định bất kỳ vị trí nào cho các phần tử được thêm vào bộ sưu tập. Nhưng trong phần thứ hai của phương pháp của chúng tôi, các phần tử được thêm vào bằng cách lập chỉ mục. Trong trường hợp này, các phần tử được thêm vào bộ sưu tập ở vị trí chính xác đã chỉ định. Khi một phần tử mới được thêm vào giữa bộ sưu tập ArrayList, các phần tử đã tồn tại trong bộ sưu tập đó nằm ngoài vị trí chèn được chỉ định của phần tử mới sẽ được chuyển sang các vị trí tiếp theo từ chính chúng, do đó làm tăng kích thước của bộ sưu tập. Khi nhìn vào đầu ra đầu tiên, chúng ta sẽ thấy:
Total No of Characters in List: 10
Total No of Characters in Array: 8
Điều này là do ngoài mảng có 8 phần tử được thêm vào ArrayList, chúng tôi còn thêm 2 phần tử nữa một cách rõ ràng, do đó tăng kích thước của bộ sưu tập lên 10. Phương thức này getCharacterPosition(args)lấy giá trị của một phần tử (tên người) và hiển thị vị trí của phần tử này trong bộ sưu tập ArrayList. Nếu không có phần tử nào như vậy trong ArrayList, thì giá trị -1 sẽ được hiển thị. Phương thức này removeCharacter(args)loại bỏ giá trị phần tử đã chỉ định (tên người) khỏi bộ sưu tập, lấy làm đối số là chỉ mục của phần tử đó hoặc chính phần tử đó. Trong đoạn mã trên, chúng ta có thể nhận thấy rằng kích thước của bộ sưu tập đã trở thành 8 thay vì 10 do thực tế là chúng ta đã xóa 2 phần tử khỏi bộ sưu tập. Nếu kích thước của mảng và tập hợp giống nhau thì phương thức sẽ trả về các dòng sau:
The element Harry cannot be removed
The element Dumbledore cannot be removed
Việc thực thi phương thức removeCharacter(args)chỉ được điều kiện bởi thực tế là kích thước của bộ sưu tập phải lớn hơn kích thước của mảng. Ví dụ 2. Trong ví dụ này, chúng ta sẽ viết một chương trình đơn giản sử dụng một lớp - một tập hợp Vector Liệt kê 2. Mã thực thi cho ví dụ 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();
        }
}
Chạy chương trình này sẽ tạo ra kết quả sau:
The characters are Weasley
The characters are Potter
Đoạn mã trên chỉ là một mẫu nhỏ, được cung cấp để làm bằng chứng cho thấy không có nhiều khác biệt giữa các bộ sưu tập ArrayListVector. Bộ sưu tập Vectorcó thể được thao tác theo cách tương tự như bộ sưu tập ArrayList, sử dụng các phương pháp tương tự. Ví dụ 3. Trong ví dụ này, chúng ta sẽ viết một chương trình đơn giản sử dụng lớp sưu tập HashMap Liệt kê 3. Mã thực thi cho Ví dụ 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();
    }
}
Chạy chương trình này sẽ tạo ra kết quả sau:
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
Chúng ta hãy xem mã ở trên, từng bước một. Trong chương trình ví dụ này, chúng ta có một mảng các chuỗi có các phần tử là tên của những cuốn sách nổi tiếng. Phương pháp này mapAuthors()tạo ra sự hiển thị tên sách cùng với tác giả của chúng. Chìa khóa ở đây là tên sách và giá trị là tác giả của những cuốn sách đó. Khi phương thức này được gọi getBookList(), nó sẽ lặp qua mảng Booksvà lấy từng tựa sách một. Tiếp theo, phương pháp này kiểm tra xem cuốn sách nào có tác giả riêng. Như chúng ta có thể thấy, nếu phương thức không thể tìm thấy tác giả của cuốn sách thì thông báo sẽ được hiển thị not available. Nếu không, tác giả và cuốn sách của ông sẽ được hiển thị từng cái một. Kết luận: Trong bài viết này, chúng tôi đã nghiên cứu một chút về các lớp - bộ sưu tập ArrayList, VectorHashMapcố gắng sử dụng chúng trong mã của riêng chúng tôi. Bài viết gốc: Cách sử dụng các lớp ArrayList, Vector và HashMap do Java Collections Framework cung cấp
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION