Java 的集合框架
编辑Java 的集合框架(Collection Framework)是一组接口和实现这些接口的类,它包括了多种容器类型,如 List、Set、Map 等。
集合框架的主要接口
Collection
Collection
是所有集合类的根接口,它定义了集合的基本操作,如添加、删除、遍历等
List
List
是一个有序的集合,允许重复元素实现类包括
ArrayList
(基于动态数组)、LinkedList
(基于双向链表)和Vector
(线程安全的ArrayList
)等
Set
Set
是一个不允许重复的集合实现类包括
HashSet
(基于哈希表)、TreeSet
(基于红黑树)和LinkedHashSet
(保证插入顺序)等
Queue
Queue
用于保存等待处理的任务、通常遵循先进先出(FIFO)的原则实现类包括
ArrayBlockingQueue
、PriorityQueue
等
Map
Map
是一种将键映射到值的集合,键必须唯一。实现类包括
HashMap
(基于哈希表)、TreeMap
(基于红黑树)和LinkedHashMap
(保证插入顺序)等
主要实现类
List
ArrayList:基于动态数组实现,支持快速随机访问,适用于频繁查询的场景
LinkedList:基于双向链表实现,支持快速插入和删除操作,适用于频繁增删的场景
Vector:线程安全的
ArrayList
,同步方法用于线程安全,但性能较低
Set
HashSet:基于哈希表实现,提供高效的添加、删除和查找操作
TreeSet:基于红黑树实现,支持排序和有序遍历
LinkedHashSet:结合了
HashSet
的高性能和LinkedHashMap
的插入顺序,适合需要保留元素插入顺序的场景
Queue
ArrayBlockintQueue:基于固定大小的数组实现的阻塞队列,适用于多线程环境
PriorityQueue:基于最小堆实现的优先级队列,适用于需要按优先级处理任务的场景
Map
HashMap:基于哈希表实现的键值对映射,提供高效的键值检索
TreeMap:基于红黑树实现的键值对映射,支持键的自然排序
LinkedHashMap:结合了
HashMap
的高效性和LinkedHashMap
的插入顺序,适合需要保留键值对插入顺序的场景
常用方法
集合框架中的一些常用方法包括:
add():将元素添加到集合中。
remove():从集合中移除元素。
contains():检查集合中是否包含指定元素。
size():返回集合中的元素数量。
isEmpty():判断集合是否为空。
iterator():获取迭代器用于遍历集合中的元素。
clear():清空集合中的所有元素。
集合框架的优势
类型安全:通过泛型机制,可以确保集合中的元素类型一致。
灵活性:提供了丰富的接口和实现类,可以满足不同的需求。
高效性:不同的实现类针对不同的操作进行了优化。
可扩展性:可以通过继承现有的集合类或实现相应的接口来创建自定义的集合。
示例代码
ArrayList 示例
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
System.out.println("List: " + list);
if (list.contains("Banana")) {
System.out.println("Found Banana in the list.");
}
list.remove("Cherry");
System.out.println("Updated List: " + list);
}
}
HashSet 示例
import java.util.HashSet;
public class HashSetExample {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>();
set.add("Apple");
set.add("Banana");
set.add("Cherry");
set.add("Banana"); // 不允许重复元素
System.out.println("Set: " + set);
if (set.contains("Banana")) {
System.out.println("Found Banana in the set.");
}
}
}
HashMap 示例
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
map.put("Cherry", 3);
System.out.println("Map: " + map);
if (map.containsKey("Banana")) {
System.out.println("Found Banana in the map with value: " + map.get("Banana"));
}
}
}
- 0
- 0
-
分享