- Bài 1: Tổng quan ngôn ngữ Java
- Bài 2: Hướng dẫn cài đặt và cấu hình Java
- Bài 3: Hướng dẫn cài đặt và cấu hình Intellij IDEA trên Window
- Bài 4: Tạo Project và làm quen với Intelij IDEA
- Bài 5: Cú pháp và quy tắc cơ bản trong Java
- Bài 6: Các kiểu dữ liệu trong Java
- Bài 7: Các kiểu biến trong Java
- Bài 8: Toán tử trong Java
- Bài 9: Hệ thống Unicode trong Java
- Bài 10: Các kiểu vòng lặp
- Bài 11: Câu lệnh điều khiển rẽ nhánh
- Bài 12: Câu lệnh Break, Continue trong Java
- Bài 13: Lớp và đối tượng
- Bài 14: Tính chất của lập trình hướng đối tượng trong Java
- Bài 15: Abstract class và Interface trong Java
- Bài 16: Từ khóa super và this trong Java
- Bài 17: Từ khóa static và final trong Java
- Bài 18: Mảng (Array) trong Java
- Bài 19: Package trong Java
- Bài 21: String trong Java
- Bài 22: StringBuffer và StringBuilder
- Bài 23: Tổng quan về File và I/O
- Bài 24: Xử lý nhập xuất bằng Byte Stream và Character Stream
- Bài 25: Thao tác với tệp và thư mục trong Java
- Bài 26: Tổng quan về Collection trong Java
- Bài 27: Những Interface phổ biến trong Java Collection Framework
- Bài 28: Những Class được triển khai dựa trên Interface của Java Collection
- Bài 29: Khái niệm xử lý ngoại lệ trong Java
- Bài 30: Hướng dẫn xử lý ngoại lệ trong Java
- Bài 31: Đa luồng trong Java
- Bài 32: Thread synchronization trong Java
- Bài 33: Tổng quan về Java AWT
- Bài 34: Container trong Java AWT
- Bài 35: Component trong Java AWT
- Bài 36: Layout Manager trong Java AWT
- Bài 37: Xử lý sự kiện trong Java AWT
- Bài 38: Tổng quan về Java Swing
- Bài 39: Container trong Java Swing
- Bài 40: Component trong Java Swing
- Bài 41: Layout trong Java Swing
- Bài 42: Event trong Java Swing
- Bài 43: Menu trong Java Swing
- Bài 44: Kết nối cơ sở dữ liệu với thư viện JDBC trong Java
Bài 27: Những Interface phổ biến trong Java Collection Framework - Lập trình Java cơ bản
Đăng bởi: Admin | Lượt xem: 3098 | Chuyên mục: Java
1. Collection Interface
Collection Interface trong Java là nền tảng mà trên đó Collection Framework được xây dựng. Nó khai báo các phương thức core mà tất cả Collection sẽ có.
Ví dụ:
import java.util.*;
public class CollectionsDemo {
public static void main(String[] args) {
List a1 = new ArrayList();
a1.add("Zara");
a1.add("Mahnaz");
a1.add("Ayan");
System.out.println(" Cac phan tu ArrayList");
System.out.print("\t" + a1);
List l1 = new LinkedList();
l1.add("Zara");
l1.add("Mahnaz");
l1.add("Ayan");
System.out.println();
System.out.println(" Cac phan tu LinkedList");
System.out.print("\t" + l1);
Set s1 = new HashSet();
s1.add("Zara");
s1.add("Mahnaz");
s1.add("Ayan");
System.out.println();
System.out.println(" Cac phan tu Set");
System.out.print("\t" + s1);
Map m1 = new HashMap();
m1.put("Zara", "8");
m1.put("Mahnaz", "31");
m1.put("Ayan", "12");
m1.put("Daisy", "14");
System.out.println();
System.out.println(" Cac phan tu Map");
System.out.print("\t" + m1);
}
}
Kết quả thu được:
Cac phan tu ArrayList
[Zara, Mahnaz, Ayan]
Cac phan tu LinkedList
[Zara, Mahnaz, Ayan]
Cac phan tu Set
[Zara, Mahnaz, Ayan]
Cac phan tu Map
{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}
2. List Interface trong Java
List Interface trong Java kế thừa Collection và khai báo các hành vi của một collection mà lưu giữ một dãy các phần tử. List Interface có một số đặc điểm như sau:
- Các phần tử có thể được chèn hoặc được truy cập thông qua vị trí của chúng trong danh sách, bởi sử dụng chỉ mục xây dựng bắt đầu từ 0.
- Một list có thể chứa nhiều bản sao phần tử.
- Một số phương thức của List Interface sẽ ném một UnsupportedOperationException nếu collection không thể bị sửa đổi, và ném một ClassCastException nếu một đối tượng là không tương thích với đối tượng khác.
Ví dụ:
import java.util.*;
public class CollectionsDemo {
public static void main(String[] args) {
List a1 = new ArrayList();
a1.add("Zara");
a1.add("Mahnaz");
a1.add("Ayan");
System.out.println(" Cac phan tu ArrayList");
System.out.print("\t" + a1);
List l1 = new LinkedList();
l1.add("Zara");
l1.add("Mahnaz");
l1.add("Ayan");
System.out.println();
System.out.println(" Cac phan tu LinkedList");
System.out.print("\t" + l1);
}
}
Kết quả thu được:
Cac phan tu ArrayList
[Zara, Mahnaz, Ayan]
Cac phan tu LinkedList
[Zara, Mahnaz, Ayan]
3. Set Interface trong Java
Set Interface trong Java là một Collection mà không chứa các bản sao phần tử.
Set Interface trong Java chỉ chứa các phương thức được kế thừa từ Collection và thêm sự giới hạn về việc ngăn cấm các phần tử bản sao.
Set Interface cũng thêm các hoạt động hashCode cho phép Set Interface so sánh một cách có ý nghĩa ngay cả khi kiểu triển khai của nó là khác.
Ví dụ:
import java.util.*;
public class SetDemo {
public static void main(String args[]) {
int count[] = {34, 22,10,60,30,22};
Set set = new HashSet();
try{
for(int i = 0; i<5; i++){
set.add(count[i]);
}
System.out.println(set);
TreeSet sortedSet = new TreeSet(set);
System.out.println("Danh sach da qua sap xep la:");
System.out.println(sortedSet);
System.out.println("Phan tu dau tien cua tap hop la: "+
(Integer)sortedSet.first());
System.out.println("Phan tu cuoi cung cua tap hop la: "+
(Integer)sortedSet.last());
}
catch(Exception e){}
}
}
Kết quả thu được:
[amrood]$ java SetDemo
[34, 30, 60, 10, 22]
Danh sach da qua sap xep la:
[10, 22, 30, 34, 60]
Phan tu dau tien cua tap hop la: 10
Phan tu cuoi cung cua tap hop la: 60
4. Map Interface trong Java
Map Interface trong Java so khớp duy nhất các key với value. Một key là một đối tượng mà bạn sử dụng để thu nhận một value. Map Interface có chứa các đặc điểm sau:
- Với một key và value đã cung cấp, bạn có thể lưu giữ value trong một đối tượng Map. Sau khi giá trị được lưu, bạn có thể thu nhận nó bởi sử dụng key của nó.
- Một số phương thức ném một NoSuchElementException khi không có item nào tồn tại trong Map đang gọi.
- Một ClassCastException được ném khi một đối tượng là không tương thích với các phần tử trong một Map.
- Một NullPointerException được ném nếu cố gắng sử dụng một đối tượng null và null là không được cho phép trong Map.
- Một UnsupportedOperationException được ném khi cố gắng thay đổi một Unmodifiable Map trong Java.
Ví dụ:
import java.util.*;
public class CollectionsDemo {
public static void main(String[] args) {
Map m1 = new HashMap();
m1.put("Zara", "8");
m1.put("Mahnaz", "31");
m1.put("Ayan", "12");
m1.put("Daisy", "14");
System.out.println();
System.out.println(" Cac phan tu cua Map");
System.out.print("\t" + m1);
}
}
Kết quả thu được:
Cac phan tu cua Map
{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}
5. Queue Interface trong Java
Queue (hàng đợi) là một Interface con của Collection, nó có đầy đủ các tính năng của Collection, nó khá giống với List, tuy nhiên mục đích sử dụng hơi khác nhau. Queue hoạt động theo cách thức FIFO (First In First Out). Trong FIFO, bạn chỉ có thể truy cập phần tử ở đầu hàng đợi, và khi loại bỏ phần tử nó loại phần tử đứng đầu hàng đợi. Vị trí phần từ được trèn vào phụ thuộc vào loại hàng đợi và độ ưu tiên của phần tử.
Queue có các đặc điểm cơ bản sau:
- Là tập hợp cho phép các phần tử trùng lặp.
- Không cho phép phần tử null.
Ví dụ:
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample
{
public static void main(String[] args)
{
Queue q = new LinkedList<>();
for (int i=0; i<5; i++)
q.add(i);
System.out.println("Elements of queue-"+q);
int removedele = q.remove();
System.out.println("removed element-" + removedele);
System.out.println(q);
int head = q.peek();
System.out.println("head of queue-" + head);
int size = q.size();
System.out.println("Size of queue-" + size);
}
}
Kết quả thu được:
Elements of queue-[0, 1, 2, 3, 4]
removed element-0
[1, 2, 3, 4]
head of queue-1
Size of queue-4
Như vậy, qua bài học này, chúng ta đã cùng tìm hiểu đặc điểm và cách sử dụng có những interface được dùng phổ biến trong Collection Java, ở bài tiếp theo, chúng ta sẽ tìm hiểu cụ thể các class implement những interface này.
Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!
- Bài 1: Tổng quan ngôn ngữ Java
- Bài 2: Hướng dẫn cài đặt và cấu hình Java
- Bài 3: Hướng dẫn cài đặt và cấu hình Intellij IDEA trên Window
- Bài 4: Tạo Project và làm quen với Intelij IDEA
- Bài 5: Cú pháp và quy tắc cơ bản trong Java
- Bài 6: Các kiểu dữ liệu trong Java
- Bài 7: Các kiểu biến trong Java
- Bài 8: Toán tử trong Java
- Bài 9: Hệ thống Unicode trong Java
- Bài 10: Các kiểu vòng lặp
- Bài 11: Câu lệnh điều khiển rẽ nhánh
- Bài 12: Câu lệnh Break, Continue trong Java
- Bài 13: Lớp và đối tượng
- Bài 14: Tính chất của lập trình hướng đối tượng trong Java
- Bài 15: Abstract class và Interface trong Java
- Bài 16: Từ khóa super và this trong Java
- Bài 17: Từ khóa static và final trong Java
- Bài 18: Mảng (Array) trong Java
- Bài 19: Package trong Java
- Bài 21: String trong Java
- Bài 22: StringBuffer và StringBuilder
- Bài 23: Tổng quan về File và I/O
- Bài 24: Xử lý nhập xuất bằng Byte Stream và Character Stream
- Bài 25: Thao tác với tệp và thư mục trong Java
- Bài 26: Tổng quan về Collection trong Java
- Bài 27: Những Interface phổ biến trong Java Collection Framework
- Bài 28: Những Class được triển khai dựa trên Interface của Java Collection
- Bài 29: Khái niệm xử lý ngoại lệ trong Java
- Bài 30: Hướng dẫn xử lý ngoại lệ trong Java
- Bài 31: Đa luồng trong Java
- Bài 32: Thread synchronization trong Java
- Bài 33: Tổng quan về Java AWT
- Bài 34: Container trong Java AWT
- Bài 35: Component trong Java AWT
- Bài 36: Layout Manager trong Java AWT
- Bài 37: Xử lý sự kiện trong Java AWT
- Bài 38: Tổng quan về Java Swing
- Bài 39: Container trong Java Swing
- Bài 40: Component trong Java Swing
- Bài 41: Layout trong Java Swing
- Bài 42: Event trong Java Swing
- Bài 43: Menu trong Java Swing
- Bài 44: Kết nối cơ sở dữ liệu với thư viện JDBC trong Java