Java容器是Java编程语言中用于存储和组织对象的数据结构。在Java中,容器类库提供了各种类型的容器,每种容器都有其特定的用途和适用场景。
1. 数组(Array)
数组是Java中最基本的容器类型之一,用于存储相同数据类型的元素。数组具有固定大小,一旦创建,其大小不能动态改变。在Java中,数组使用方括号 []
来声明和访问。
int[] numbers = new int[5]; // 创建一个包含5个整数的数组
numbers[0] = 1; // 设置第一个元素的值为1
数组在内存中是连续存储的,可以通过索引访问元素,具有快速的随机访问能力。但数组的大小固定,无法动态扩展,而且数组中的元素类型必须相同。
2. 集合框架(Collections Framework)
Java集合框架是一组类和接口,用于表示和操作集合对象。集合框架提供了各种类型的集合,包括列表、集合、队列和映射等,以及用于操作这些集合的方法和算法。
Java集合框架位于 java.util
包中,主要包括以下核心接口:
- Collection:表示一组对象的集合,包括列表、集合和队列等。
- List:表示有序的集合,允许重复元素,可以通过索引访问元素。
- Set:表示不允许重复元素的集合,不保证元素的顺序。
- Queue:表示队列,用于存储和操作队列数据结构。
- Map:表示键值对的集合,每个键都唯一,可以通过键来访问对应的值。
3. 列表(List)
列表是一种有序的集合,允许重复元素。在Java中,列表接口主要由 java.util.List
接口定义,常用的实现类包括 ArrayList
、LinkedList
、Vector
等。
List<String> names = new ArrayList<>(); // 创建一个ArrayList实例
names.add("Alice"); // 向列表添加元素
names.add("Bob");
names.add("Alice"); // 允许添加重复元素
列表提供了丰富的方法和操作,如添加元素、删除元素、获取元素、遍历列表等。列表还支持通过索引访问元素,具有高效的随机访问能力。
4. 集合(Set)
集合是一种不允许重复元素的集合,不保证元素的顺序。在Java中,集合接口主要由 java.util.Set
接口定义,常用的实现类包括 HashSet
、TreeSet
、LinkedHashSet
等。
Set<String> colors = new HashSet<>(); // 创建一个HashSet实例
colors.add("Red"); // 向集合添加元素
colors.add("Green");
colors.add("Red"); // 重复元素将被忽略
集合提供了一系列用于添加、删除和判断元素是否存在的方法,具有高效的查找和去重能力。
5. 队列(Queue)
队列是一种先进先出(FIFO)的数据结构,用于存储和操作元素。在Java中,队列接口主要由 java.util.Queue
接口定义,常用的实现类包括 LinkedList
、PriorityQueue
等。
Queue<Integer> queue = new LinkedList<>(); // 创建一个LinkedList实例作为队列
queue.offer(1); // 入队操作
queue.offer(2);
int front = queue.poll(); // 出队操作
队列提供了入队和出队等基本操作,还支持查看队首元素和队列大小等方法。
6. 映射(Map)
映射是一种键值对的集合,每个键都唯一,可以通过键来访问对应的值。在Java中,映射接口主要由 java.util.Map
接口定义,常用的实现类包括 HashMap
、TreeMap
、LinkedHashMap
等。
Map<String, Integer> scores = new HashMap<>(); // 创建一个HashMap实例作为映射
scores.put("Alice", 90); // 添加键值对
scores.put("Bob", 85);
int aliceScore = scores.get("Alice"); // 根据键获取对应的值
映射提供了添加、删除、更新和查找键值对的方法,具有高效的查找和更新能力。
7. 栈(Stack)
栈是一种后进先出(LIFO)的数据结构,可以用来存储和操作元素。在Java中,栈通常由 java.util.Stack
类实现,也可以使用 Deque
接口的实现类来模拟栈的功能。
Stack<Integer> stack = new Stack<>(); // 创建一个栈实例
stack.push(1); // 入栈操作
stack.push(2);
int top = stack.pop(); // 出栈操作
栈提供了入栈和出栈等基本操作,还支持查看栈顶元素和栈的大小等方法。
8. 集合工具类(Collections Utility Class)
Java还提供了 java.util.Collections
类,包含了一系列静态方法,用于操作集合对象。这些方法包括排序、查找、反转、填充等,可以方便地对集合进行操作和处理。
List<Integer> numbers = new ArrayList<>();
numbers.add(3);
numbers.add(1);
numbers.add(2);
Collections.sort(numbers); // 对列表进行排序
System.out.println(numbers); // 输出结果为 [1, 2, 3]
Collections
类提供了丰富的方法和算法,可以帮助开发者更方便地操作集合对象。
Java提供了丰富的容器类库,包括数组、集合框架、列表、集合、队列、映射等多种类型的容器。每种容器都有其特定的用途和适用场景,开发者可以根据实际需求选择合适的容器。掌握这些容器的使用方法和特性,可以帮助开发者更高效地进行Java编程,并且提高代码的质量和可维护性。
黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)
黑马程序员Java零基础视频教程_下部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)