2019独角兽企业重金招聘Python工程师标准>>>

数组是应用最广泛的数据存储结构。它被植入到大部分编程语言中。

Java中数组的基础知识

    创建数组

在Java中把它们当作对象来对待,因此在创建数组是必须使用new操作符:

    int[] intArray;            //defines a reference to an arrayingArray = new int[100];    //creates the array, and //sets int Array to refer to it//或使用等价的单语句声明的方法:int[] int array = new int[100];

数组是一个对象,所以它的名字(前面程序中intArray)是数组的一个引用;它并不是数组本身。数组存储在内存中的其他地址中,而intArray仅仅保存着这个地址。数组有一个length字段,通过它可以得知当前数组大小(数据项的个数);

int arrayLength = intArray.length;        //find array size

一旦创建数组,大小便不可改变。

    访问数组数据项

数组数据项通过方括号中的下标来访问。

        temp = intArray[3];        //get contents of fourth element of arrayintArray[7] = 66;            //intsert 66 into the eighth cell

    初始化

当创建整型数组之后,不另行指定那么数组会自动初始化为空。

除非将特定的值赋给数组的数据项,否则它们一直是特殊的null对象。

使用下面的语法可以初始化一个基本类型的数组:

int[] intArray = {1,3,45,23,123,122,56};

数组的大小是由数据列表中的数据项决定的;大小固定不可改变;

有序数组的Java代码

下面讨论一下有序数组的Java代码,它使用OrdArray类来封装数组和它的算法。类的核心是find()方法,通脱二分查找类定位一个特定的数据项。

小结

  • Java中的数组是对象,由new操作符创建;

  • 无序数组可以提供快速的插入,但查找和删除较慢;

  • 将数组封装到类中可以保护数组不随意更改;

  • 类的接口类用户可以访问的方法(有时还有字段)组成;

  • 类的接口被设计成使类用户操作更加简单;

  • 有序数组可以使用二分查找;

  • 以B为底A的对数(大概)是在结果小雨1之前用B除A的次数;

  • 线性查找需要的时间与数组中数据项的个数成正比;

  • 二分查找需要的时间与数组中数据项的个数的对数成正比;

  • 大O表示法为比较算法的速度提供了一种方便的方法。

  • O(1)级时间的算法是最好的,O(logN)次之,O(N)为一般,O(N²)最差;

36页

转载于:https://my.oschina.net/u/1431757/blog/520924

Java数据结构与算法(第二章数组)相关推荐

  1. 数据结构与算法第二章 线性表、栈、队列、数组、字符串、树、二叉树、哈希表的增删查

    03 增删查:掌握数据处理的基本操作,以不变应万变 通过前面课时的学习,相信你已经建立了利用数据结构去完成时空转移的思想.接下来,你需要在理论思想的指导下灵活使用.其实,要想灵活使用数据结构,你需要先 ...

  2. JAVA数据结构与算法【稀疏数组】

    先看一个实际的需求: 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: 记录数组一共有几行几列,有多少个不同的值 把具有不同值的元素 ...

  3. 数据结构与算法--第二章pro题解

    文章目录 ==模板== --双链表 ==模板==--循环双链表 1.双链表的基本运算 2:整数双链表的基本运算-3 3:整数双链表的基本运算-4 4:循环双链表的基本运算 模板 --双链表 struc ...

  4. Java数据结构与算法---栈(数组存储)

    今天用Java实现了数据结构中的栈,学会了操纵栈的一系列方法.关于栈的相关内容这里不做介绍,我只是将自己实现的代码分享出来,记录自己的学习进度同时希望能对其他朋友具有借鉴作用. 以下是用数组存储实现栈 ...

  5. 尚硅谷java数据结构与算法 韩顺平 数组实现队列问题

    day2学习打卡:数组实现循环队列 package queue;import java.util.Scanner; //这里没有使用循环队列的思想所以造成了数组空间的浪费(数组空间不能复用) publ ...

  6. 有序数组二分查找java_详解Java数据结构和算法(有序数组和二分查找)

    一.概述 有序数组中常常用到二分查找,能提高查找的速度.今天,我们用顺序查找和二分查找实现数组的增删改查. 二.有序数组的优缺点 优点:查找速度比无序数组快多了 缺点:插入时要按排序方式把后面的数据进 ...

  7. Java数据结构和算法(第二版)

    Java数据结构和算法(第二版) 下载地址 https://pan.baidu.com/s/112D5houIgu0eMs_i5o0Ujw 扫码下面二维码关注公众号回复 100066获取分享码 本书目 ...

  8. Java算法--第二章--查找与排序(2)递归基础--佩波那契最大公约数插入排序汉诺塔

    Java算法–第二章–查找与排序(2)递归基础 一.找重复 1.找到一种划分方法 2.找到递推公式或者等价转换 都是父问题转化为求解子问题 二.找变化的量 变化的量通常要作为参数 三.找出出口 代码: ...

  9. 用数组实现环形队列(尚硅谷Java数据结构与算法)

    整个代码在文章最后面,gitee地址:java数据结构与算法: 自己学习与练习数据结构的仓库https://gitee.com/ALi_L/javaDataStructurs.git 环形队列的难点如 ...

  10. Java数据结构与算法(二)

    Java数据结构与算法(二) 第六章 递归 1 递归应用场景 2 递归的概念 3 递归调用机制 4 递归能解决什么样的问题 5 递归需要遵守的重要规则 6 递归-迷宫问题 6.1 迷宫问题 6.2 代 ...

最新文章

  1. Numpy 广播机制(两个不同维度对象进行数学运算)
  2. 北科大matlab,北科大matlab第五次作业多项式及其相关计算.doc
  3. 神奇的nginx之https支持
  4. a b*c的C语言表达式为,在C语言的if语句中,用作判断的表达式为 ______
  5. 百度云世界里的“七种武器”:PCS、BAE、Site App、ScreenX等
  6. android 网络调试 源代码,Android源代码调试环境搭建
  7. python-temp-0626随堂
  8. 3-18pytorch与矩阵分解PCA
  9. 嵌入式单片机STM32原理及应用
  10. 读《因果的真相》第五章摘抄笔记
  11. 枯燥的Kotlin协程三部曲(中)——应用实战篇
  12. 中望CAD的引线标注格式怎么改_大神说这样学CAD命令,超容易掌握
  13. 向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读(经典)
  14. 机器学习第一章:简介和概括
  15. 淘宝客导购产品设计 (一)
  16. MATLAB simulink 模型验证学习笔记
  17. 小米官网首屏纯css代码
  18. 中职学生学业水平计算机考试试题,中职学业水平测试试卷(综合卷).docx
  19. 盘点安卓绿色联盟2018全年技术沙龙干货分享
  20. Codeforces 891E Lust

热门文章

  1. SAP MM MB5L 报表里的差异金额如何调整?
  2. 大厂AI面试官一语中的:一场面试暴露了你的机器学习水平
  3. 深度丨当AI遇见区块链,2018年的第一场火,还是第一场泡沫?
  4. 《用Python进行自然语言处理》第 11 章 语言数据管理
  5. CCF的A类期刊和会议有哪些?人工智能顶会ACL,ICML,NeurIPS,ICLR论文投稿时间以及影响因子等
  6. 生命如何在复杂环境中生存?信息、调控和几何结构的交织
  7. 文章推荐 | 城市规划中城市信息学的研究进展
  8. 一文读懂全球半导体市场
  9. 当AI主播和人越来越像,我们该怎么办?
  10. RISC-V会彻底改变计算吗?