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
-
赞助
支付宝
微信
-
分享