欢迎访问宙启技术站
智能推送

Java中的常见数据结构和函数用法

发布时间:2023-06-25 18:38:33

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编程任务。