Java常用数据结构入门
Java常用数据结构入门
前言
数据结构是程序设计中的基础,掌握常用数据结构能帮助你更高效地解决问题。本文面向Java初学者,介绍Java中常用的数据结构及其基本使用方法。
1. 数组 (Array)
数组是最基础的数据结构,可以存储固定大小的同类型元素。
定义与使用:
int[] arr = new int[5]; // 创建长度为5的整型数组
arr[0] = 10; // 赋值
System.out.println(arr[0]); // 输出第一个元素
特点:
- 长度固定,不能动态扩容
- 访问速度快,适合存储和遍历
2. ArrayList
ArrayList是Java集合框架中最常用的动态数组实现,可以动态扩容,适合存储不固定长度的数据。
定义与使用:
import java.util.ArrayList;
ArrayList<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
System.out.println(list.get(0)); // 输出 "Java"
常用方法:
add()
添加元素get()
获取元素remove()
移除元素size()
获取长度
3. LinkedList
LinkedList是链表结构,插入和删除操作效率高,适合频繁增删元素的场景。
定义与使用:
import java.util.LinkedList;
LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.remove(0); // 移除第一个元素
特点:
- 插入/删除快
- 随机访问慢
4. HashMap
HashMap是常用的键值对映射结构,用于存储映射关系。
定义与使用:
import java.util.HashMap;
HashMap<String, Integer> map = new HashMap<>();
map.put("Java", 1);
map.put("Python", 2);
System.out.println(map.get("Java")); // 输出 1
常用方法:
put()
添加键值对get()
获取值remove()
移除键值对containsKey()
判断是否包含某个键
5. HashSet
HashSet用于存储不重复的元素集合。
定义与使用:
import java.util.HashSet;
HashSet<String> set = new HashSet<>();
set.add("Java");
set.add("Python");
set.add("Java"); // 不会重复添加
System.out.println(set.size()); // 输出 2
特点:
- 元素不重复
- 无序存储
6. 栈 (Stack)
栈是一种后进先出(LIFO)的数据结构,可以用Stack
类或Deque
接口实现。
定义与使用:
import java.util.Stack;
Stack<Integer> stack = new Stack<>();
stack.push(1); // 压栈
stack.push(2);
System.out.println(stack.pop()); // 出栈,输出2
7. 队列 (Queue)
队列是一种先进先出(FIFO)结构,常用LinkedList
或ArrayDeque
实现。
定义与使用:
import java.util.LinkedList;
import java.util.Queue;
Queue<String> queue = new LinkedList<>();
queue.offer("Java");
queue.offer("Python");
System.out.println(queue.poll()); // 输出并移除 "Java"
总结
Java集合框架为我们提供了丰富的数据结构选择。作为初学者,建议重点掌握上述几种数据结构的基本用法和特点。多加练习,结合实际场景选择合适的数据结构,会让你的编程能力大幅提升。
推荐学习路径:
- 了解每种数据结构的特点和适用场景
- 编写代码练习基本操作
- 阅读Java官方文档和相关书籍
参考资料:
- Java官方文档 - Collections Framework
- 《数据结构与算法Java版》