赞
踩
Java语言在设计之初有一个非常重要的理念便是:write once,run anywhere!所以Java中的数据结构是已经被设计者封装好的了,我们只需要实例化出想使用的对象,便可以操作相应的数据结构了,本篇文章中我会向大家简单介绍一下什么是数据结构,以及对Java中常用的数据结构做简单介绍,在以后的文章中我会结合Java源码对Java中的每一个数据结构进行详细介绍并亲手实现,欢迎大家在评论区交流想法和意见啊。
目录
4.Java中Comparable和Comparator接口
数据结构是计算机中存储,组织数据的方式。我们现在学习的数据结构都是历史中总结出来的典型的优良的程序结构,在开发中多利用这些数据结构能显著提高你的代码质量。
我们需要学习的数据结构有:线性表,链表,堆,栈,队列,哈希表,二叉树,图等。
上图中表示了Java中的集合框架,大致可以分为list,set,map三种体系:
我在下面的文章中用三千字详细介绍了Java的泛型机制,包括泛型方法,协变,逆变,擦除机制。【JavaSE】Java进阶知识一(泛型详解,包括泛型方法,协变,逆变,擦除机制)
联系:
两者都是接口,都是Java中用来进行类型排序的。两者的排序方法均是通过相减返回一个int值,
返回正数,零和负数分别代表大于,等于和小于。
区别:
学习时间和空间复杂度的作用主要是帮助我们去分析一个数据结构或算法的优缺点,从这两方面来衡量一个算法的好坏。
- // 计算func2的时间复杂度?
- void func2(int N) {
- int count = 0;
- for (int k = 0; k < 2 * N ; k++) {
- count++;
- }
- int M = 10;
- while ((M--) > 0) {
- count++;
- }
- System.out.println(count);
- }
- // 计算fibonacci的空间复杂度?
- int[] fibonacci(int n) {
- long[] fibArray = new long[n + 1];
- fibArray[0] = 0;
- fibArray[1] = 1;
- for (int i = 2; i <= n ; i++) {
- fibArray[i] = fibArray[i - 1] + fibArray [i - 2];
- }
- return fibArray;
- }
上述代码中动态开辟了N个空间,空间复杂度为O(N)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。