Java中的常见数据结构和函数用法
Java中常见的数据结构有数组、链表、栈、队列、树、图等。
1. 数组
数组是一种最简单的数据结构,它是一个元素的集合,这些元素具有相同的数据类型。数组的大小固定,一旦创建就无法更改。我们可以使用数组来存储一组数据,可以通过下标访问数组中的元素。
//创建一个长度为5的整数数组arr
int[] arr = new int[5];
//向数组中添加元素
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
//遍历数组
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
2. 链表
链表是一种数据结构,它是由一系列节点组成的集合,每个节点包含一个数据域和一个指向下一个节点的指针。链表可以分为单向链表和双向链表。
//单向链表节点类
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
//创建一个单向链表
ListNode head = new ListNode(1);
ListNode node1 = new ListNode(2);
ListNode node2 = new ListNode(3);
head.next = node1;
node1.next = node2;
//遍历链表
ListNode curr = head; //从头节点开始遍历
while (curr != null) {
System.out.print(curr.val + " ");
curr = curr.next; //指针指向下一个节点
}
3. 栈
栈是一种后进先出(Last In First Out)的数据结构,它只允许在栈顶进行插入和删除操作。
//创建一个整数栈
Stack<Integer> stack = new Stack<>();
//入栈操作
stack.push(1);
stack.push(2);
stack.push(3);
//出栈操作
while (!stack.empty()) {
System.out.print(stack.pop() + " ");
}
4. 队列
队列是一种先进先出(First In First Out)的数据结构,它只允许在队列尾进行插入操作,在队列头进行删除操作。
//创建一个整数队列
Queue<Integer> queue = new LinkedList<>();
//入队操作
queue.offer(1);
queue.offer(2);
queue.offer(3);
//出队操作
while (!queue.isEmpty()) {
System.out.print(queue.poll() + " ");
}
5. 树
树是一种非线性数据结构,它由一组称为节点的元素和一组关系构成。树的每个节点都有一个父节点和零个或多个子节点。根节点是树的 个节点,它没有父节点。
//二叉树节点类
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
//创建一棵二叉树
TreeNode root = new TreeNode(1);
TreeNode node1 = new TreeNode(2);
TreeNode node2 = new TreeNode(3);
root.left = node1;
root.right = node2;
//遍历二叉树
//前序遍历:根节点->左子树->右子树
public void preorderTraversal(TreeNode root) {
if (root != null) {
System.out.print(root.val + " ");
preorderTraversal(root.left);
preorderTraversal(root.right);
}
}
6. 图
图是由一组节点和一组边组成的数据结构,节点表示对象,边表示对象之间的关系。图分为有向图和无向图。
//创建一个无向图
int n = 5; //节点数量
List<List<Integer>> graph = new ArrayList<>();
for (int i = 0; i < n; i++) {
graph.add(new ArrayList<Integer>());
}
//添加边
graph.get(0).add(1);
graph.get(0).add(2);
graph.get(1).add(2);
graph.get(2).add(3);
graph.get(3).add(4);
Java中常见的函数包括:
1. 迭代器
Java中的迭代器是一种实现了Iterator接口的对象,它可以用来遍历集合中的元素。使用迭代器可以方便地对集合进行操作。
//遍历集合
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Iterator<Integer> it = list.iterator();
while (it.hasNext()) {
System.out.print(it.next() + " ");
}
2. 排序算法
Java中提供了多种排序算法,包括冒泡排序、选择排序、插入排序、快速排序、归并排序等。
//冒泡排序
int[] arr = {5, 2, 3, 1, 4};
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
//遍历排序后的数组
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
3. 字符串处理
Java中提供了多种字符串处理方法,包括字符串比较、字符串连接、字符串查找、字符串分割等。
//字符串查找
String str = "hello world";
int index = str.indexOf("world");
System.out.println(index);
4. 数学函数
Java中提供了多种数学函数,包括求绝对值、幂、三角函数、对数函数等。
//求平方根
double x = 4;
double y = Math.sqrt(x);
System.out.println(y);
5. 时间函数
Java中提供了多种时间函数,包括获取当前时间、计算时间差、格式化时间等。
//获取当前时间
Date now = new Date();
System.out.println(now);
Java中还有很多常见的数据结构和函数用法,上面只是列举了一部分。熟练掌握这些数据结构和函数可以帮助我们更好地完成Java编程任务。
