Cách sử dụng Package và Collection có sẵn trong Java

Cách sử dụng Package và Collection có sẵn trong Java

Chia sẻ kiến thức 03/03/2022

Một trong những tính năng sáng tạo nhất của Java là các Package và Collection có sẵn. Package trong Java là tập hợp bao gồm các lớp, giao diện, bảng liệt kê, chú thích và các gói package phụ. Trong bài viết dưới đây, FUNiX sẽ cùng bạn tìm hiểu gói package trong Java là gì và cách sử dụng Package và Collection hiệu quả.

Table of Contents

>> 10 ứng dụng đáng kinh ngạc của Java – Java được sử dụng ở đâu trong thế giới thực?

>> Tất tần tật về ngôn ngữ lập trình Java và 7 lý do tại sao bạn nên học

>> 3 cách lấy thành phần dom bằng câu lệnh Javascript và sử dụng các sự kiện cơ bản

1. Package và Collection trong Java là gì?

1.1 Khái niệm Package và các loại Package trong Java

Package là một cơ chế để nhóm các loại lớp, giao diện và lớp con tương tự nhau dựa trên các chức năng của chúng. Khi phần mềm được viết bằng ngôn ngữ lập trình Java, nó có thể bao gồm hàng trăm hoặc thậm chí hàng nghìn lớp riêng lẻ. Chính vì thế, việc đưa các lớp và giao diện liên quan vào các Package sẽ giúp bạn quản lý chúng hiệu quả hơn.

Package trong Java
Package trong Java

Sử dụng Package và Collection trong lập trình mang lại nhiều lợi ích, chẳng hạn như:

  • Khả năng tái sử dụng: các lớp có trong Package khác có thể được tái sử dụng dễ dàng.
  • Xung đột tên: Package giúp chúng ta xác định duy nhất một lớp, ví dụ, chúng ta có thể có các lớp như company.sales.Employee và company.marketing.Employee.
  • Truy cập có kiểm soát: Package cung cấp bảo vệ truy cập như bảo vệ lớp (lớp mặc định và lớp riêng).
  • Đóng gói dữ liệu: Package cung cấp một cách để ẩn các lớp để ngăn các chương trình khác truy cập vào các lớp chỉ để sử dụng nội bộ.
  • Khả năng bảo trì: Việc sử dụng các Package có thể tổ chức các dự án tốt hơn và dễ dàng xác định các danh mục liên quan.

Tùy theo việc Package có được người dùng xác định hay không, Package được chia thành hai loại:

  • Package được xây dựng trước (buit-in)
  • Package do người dùng xác định (defined)

Package được xây dựng trước: Các Package dựng sẵn hoặc các gói được xác định trước nằm trong JDK (bộ phát triển Java) để đơn giản hóa các tác vụ cho các lập trình viên Java. Chúng bao gồm một số lượng lớn các lớp và giao diện được xác định trước, là một phần của Java API. Một số Package tích hợp thường được sử dụng là java.lang, java.io, java.util, java.applet, v.v. Đây là một chương trình đơn giản sử dụng các gói tích hợp sẵn:

import java.util.ArrayList;public class BuiltInPackage {     public static void main(String[] args) {         ArrayList<Integer> myList = new ArrayList<>(3);         myList.add(3);         myList.add(2);         myList.add(1);             System.out.println(“Cac thanh phan cua danh sach la: “ + myList);    }}

Lớp ArrayList thuộc về gói java.util. Để sử dụng nó, chúng ta phải nhập gói bằng câu lệnh nhập để nhập gói bằng dòng đầu tiên của mã “import java.util.ArrayList”. Đó là, nhập gói java.util và sử dụng lớp ArrayList có trong gói phụ sử dụng.

Package do người dùng xác định: Đây Package tùy chỉnh là gói do người dùng phát triển để nhóm các lớp, giao diện và gói con có liên quan. Với sự trợ giúp của chương trình mẫu, bạn có thể tự tạo một Package, biên dịch các chương trình Java trong Package và thực thi chúng.

1.2 Khái niệm Collection và các loại Interface chính

Collections trong java là một khuôn khổ cung cấp một khuôn khổ để lưu trữ và thao tác các nhóm đối tượng. Tất cả các thao tác bạn thực hiện trên dữ liệu (như tìm kiếm, sắp xếp, chèn, xóa …) đều có thể được thực hiện bởi các tập hợp Java.

Collection trong Java là giao diện gốc trong hệ thống phân cấp Collection. Collection Java cung cấp nhiều giao diện (Set, List, Queue, Deque, v.v.) và các lớp (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet, TreeSet, v.v.).

Sau đây là mô tả interface chính của Collection:

  • Set: Là bộ không được chứa 2 giá trị trùng nhau. Set được sử dụng để đại diện cho các tập hợp, chẳng hạn như tu lu kau, thời khóa biểu của học sinh, tiến trình chạy trên máy tính …
  • List: là một tập hợp có thứ tự (đôi khi được gọi là một dãy). Danh sách có thể chứa các phần tử lặp lại. Bạn thường có thể kiểm soát vị trí chính xác nơi các phần tử được chèn và bạn có thể truy cập chúng bằng chỉ mục (vị trí của chúng).
  • Queue: là một tập hợp dùng để lưu trữ nhiều phần tử trước khi xử lý. Ngoài các thao tác thu thập cơ bản, Queue còn cung cấp các thao tác bổ sung như chèn, truy xuất và kiểm tra. Hàng đợi có thể được sử dụng như một FIFO (nhập trước xuất trước)
  • Deque: là tập hợp dùng để lưu nhiều phần tử trước khi xử lý. Ngoài các thao tác thu thập cơ bản, Deque còn cung cấp thêm các thao tác khác như chèn, truy xuất và kiểm tra. Deques có thể được sử dụng như FIFO (xuất trước vào trước) và LIFO (nhập trước xuất sau). Trong Deque, bạn có thể chèn, xóa và xóa tất cả các phần tử mới ở cả hai đầu.
  • Map: là một đối tượng ánh xạ mỗi khóa với một giá trị. Bản đồ không được chứa các giá trị trùng lặp. Mỗi khóa có thể được ánh xạ tới nhiều nhất một giá trị.
Sơ đồ interface chính của Collection
Sơ đồ interface chính của Collection

2. Cách sử dụng Package và Collection 

Để giúp bạn hiểu rõ cách sử dụng Package và Collection, FUNiX sẽ chia thành bài viết thành nhiều phần tương ứng với các thao tác cụ thể.

2.1 Cách tạo package trong Java

Tạo một Package trong Java là một nhiệm vụ rất dễ dàng. Bạn chỉ cần chọn tên cho Package và sử dụng câu lệnh để thêm tiền tố vào Package trong tệp .java. Tệp nguồn java có thể chứa các lớp, giao diện, bảng liệt kê và các loại chú thích được bao gồm trong Package. Ví dụ, câu lệnh sau tạo một Package có tên MyPackage: package MyPackage;

Lưu ý: Nếu câu lệnh Package bị bỏ qua, tên lớp sẽ được đặt trong gói mặc định mà không có tên. Mặc dù Package mặc định tốt cho các chương trình ngắn, nhưng nó không đủ cho các ứng dụng thực.

2.2 Đặt một lớp trong Package Java

Để tạo một lớp trong một Package, bạn nên khai báo tên Package là câu lệnh đầu tiên của chương trìn và bao gồm cả lớp như một phần của Package. Tuy nhiên, hãy nhớ rằng một lớp chỉ có thể có một khai báo Package, đó là package.json. 

2.3 Tạo một lớp bên trong package khi import gói package khác

Có 3 cách để truy cập các Package từ một Package bên ngoài:

  • Khai báo import package;
  • Khai báo import package.classname;
  • Sử dụng tên đầy đủ.

2.4 Cách sử dụng các phương thức được xây dựng sẵn trong Collections

2.4.1 Phương thức addAll

Phương thức addAll được sử dugnj để thêm một hoặc nhiều phần tử vào danh sách hiện có như hình bên dưới.

List<String> list = new ArrayList<>();

Collections.addAll(list, “element 1”, “element 2”, “element 3”);

2.4.2 Phương thức BinarySearch

Binary search dùng để tìm kiếm phần tử trong List và sử dụng thuật toán Binary Search để tìm phần tử. Khi áp dụng Binary Search cho List thì bắt buộc List phải được sắp xếp trước khi sử dụng Binary Search.

List<String> list = new ArrayList<>();

list.add(“one”);

list.add(“two”);

list.add(“three”);

list.add(“four”);

list.add(“five”);

Collections.sort(list);

int index = Collections.binarySearch(list, “four”);

System.out.println(index);

2.4.3 Phương thức Copy

Phương thức Copy dùng để copy tất cả các giá trị từ một list vào một list khác:

List<String> source = new ArrayList<>();

Collections.addAll(source, “e1”, “e2”, “e3”);

List<String> destination = new ArrayList<>();

Collections.copy(destination, source);

2.4.4 Phương thức Reverse

Phương thức này dùng để đảo ngược thứ tự vị trí trong các phần tử trong List:

List>String< list = new ArrayList<String>();

list.add(“one”);

list.add(“two”);

list.add(“three”);

Collections.reverse(list);

Kết quả in ra sẽ là 3,2,1.

2.4.5 Phương thức shuffle

Phương thức shuffle dùng để xáo trộn các phần tử trong List:

public class GFG 

    public static void main(String[] args) 

    { 

        ArrayList<String>  mylist = new ArrayList<String>(); 

        mylist.add(“code”); 

        mylist.add(“quiz”); 

        mylist.add(“geeksforgeeks”); 

        mylist.add(“quiz”); 

        mylist.add(“practice”); 

        mylist.add(“qa”); 

  

        System.out.println(“Original List : \n” + mylist); 

  

        Collections.shuffle(mylist); 

  

        System.out.println(“\nShuffled List : \n” + mylist); 

    } 

Original List : 

[code, quiz, geeksforgeeks, quiz, practice, qa]

Shuffled List : 

[qa, quiz, practice, code, quiz, geeksforgeeks]

2.4.6 Phương thức Sort sắp xếp thứ tự các phần tử trong một List như sau:

List>String list = new ArrayList<String>();

list.add(“one”);

list.add(“two”);

list.add(“three”);

list.add(“four”);

Collections.sort(list);

2.4.7 Phương thức ReplaceAll

ReplaceAll được sử dụng để thay thế một phần tử hiện có trong List bằng một phần tử khác:

List source = new ArrayList();

source.add(“A”);

source.add(“B”);

source.add(“A”);

boolean replacedAny = source.replaceAll(source, “A”, “C”);

Kết quả ta nhận được sẽ là C,B,C.

Trên đây là cách sử dụng Package và Collection chi tiết và đẩy đủ nhất. Hy vọng bài viết của FUNiX đem đến những kiến thức hữu ích cho bạn và chúc bạn học tốt!

>>>  Tìm hiểu ngay các khóa học lập trình của FUNiX tại:

>>> Xem thêm nhiều hơn bài viết tại đây:

Phạm Thị Thanh Ngọc

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!