数组由一组具有相同类型的数据元素组成,并存储在一组连续存储单元中。一维数组是常量。

二维数组:若一维数组中的数据元素又是一堆数据结构,我们称之为二维数组。二维数组可以看成是n个列向量组成的线性表。

数组的存储结构:

以为数组:的存储单元地址是连续的。

java中数组是静态的。当数组被初始化之后,该数组所占的内存空间、数组长度都是不可变的。java中的数组必须经过初始化之后才可以使用。

数组初始化的两种方式:

  静态初始化:初始化时,我们显示的指定每个数组元素的初始值,由系统决定数组的长度。

  动态初始化:初始化时,我们只规定数组的长度,由系统分配值。

  动态初始化数组,由系统分配初始值

    1)数组元素是基本类型中的整型类型(byte、short、int、long)数组元素初始值为0

     数组元素基本类型的浮点类型(float、double)数组元素的初始值为0.0

     数组元素是基本类型中的字符类型(char)数组元素的值为\u000

      数组元素十几本类型中布尔类型(boolean)数组元素的值为false

    2)数组元素是引用类型(类、接口、数组)时,数组元素初始值为NULL

      

      数组变量只是一个引用变量,而数组对象是保存在堆内存中的连续内存空间,对数组执行初始化,并不是对数组变量执行初始化,而是在堆内存中创建数组对象,也就是为该数组对象分配一块连续的内存空阿金,这块连续的内存空间的长度就是数组的长度。

不要同时使用静态初始化,和动态初始化,其实就是不要既指定了数组的长度,又为数组赋了初始值。

数组变量&数组对象

数组变量只是一个引用类型的变量,并不是数组对象本身。

数组对象,只有让数组变量指向有效的数组对象,程序中才可以使用数组变量。

java中的数组对

java中的数组是对象,由new操作符创建

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

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

类的接口由类用户可以访问的方法组成

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

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

以B为底A的对数是结果小于1之前用B除A的次数

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

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

O(1)级时间的算法是最好的O(logN)次之,O(N)一般,O(N平方)最差

java版数据结构与算法第二章数组的更多相关文章

  1. javascript数据结构和算法 第二章 (数组) 二

    字符串表示的数组 join() 和 toString() 函数返回数组的字符串表示.这两个函数通过将数组中的元素用逗号分隔符切割,返回字符串数组表示. 这里有个样例: var names = [&qu ...

  2. 【学习总结】java数据结构和算法-第二章-数据结构和算法概述

    总目录链接 [学习总结]尚硅谷2019java数据结构和算法 github:javaDSA 目录 数据结构和算法的关系 几个实际编程中的问题 线性结构和非线性结构 数据结构和算法的关系 几个实际编程中 ...

  3. java版数据结构与算法 (1综述)

    很大部分转载自 https://blog.csdn.net/singit/article/details/54898316 数据的逻辑结构:反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系指数据元 ...

  4. Android版数据结构与算法(二):基于数组的实现ArrayList源码彻底分析

    版权声明:本文出自汪磊的博客,未经作者允许禁止转载. 本片我们分析基础数组的实现--ArrayList,不会分析整个集合的继承体系,这不是本系列文章重点. 源码分析都是基于"安卓版" ...

  5. JavaScript 版数据结构与算法(二)队列

    今天,我们要讲的是数据结构与算法中的队列. 队列简介 队列是什么?队列是一种先进先出(FIFO)的数据结构.队列有什么用呢?队列通常用来描述算法或生活中的一些先进先出的场景,比如: 在图的广度优先遍历 ...

  6. javascript 数据结构和算法读书笔记 > 第二章 数组

    这章主要讲解了数组的工作原理和其适用场景. 定义: 一个存储元素的线性集合,元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量. javascript数组的特殊之处: jav ...

  7. Java成神之路:第二帖---- 数据结构与算法之稀疏数组

    数据结构与算法--稀疏数组 转换方法 记录数组有几行几列,有多少个不同的值 把不同的值的元素的行列,记录在一个小规模的数组中,以此来缩小数组的规模 如图: 二维数组转稀疏数组 对原始的二维数组进行遍历 ...

  8. java数据结构和算法01(数组的简单使用)

    一直都对这一块没有什么想法,加上不怎么理解,只是懂个大概:最近突然感觉对数据结构和算法这块有点儿兴趣,决定还是尽量详细的看看这些结构和算法: 话说什么事数据结构和算法呢?现在我也说不上来,等我学的差不 ...

  9. 数据结构Java版之排序算法(二)

    排序按时间复杂度和空间复杂度可分为 低级排序 和 高级排序 算法两种.下面将对排序算法进行讲解,以及样例的展示. 低级排序:冒泡排序.选择排序.插入排序. 冒泡排序: 核心思想,小的数往前移.假设最小 ...

随机推荐

  1. GT sport真实赛道详解 - Brands Hatch | 伯蘭士赫治GP賽車場

    参考:GT sport所有赛道简介 GT Sport - Tip/Guide For FASTER LAP TIMES (Brands Hatch) 赛道介绍.跑法.赛事网上都有大把的视频. GT s ...

  2. vue中<select>绑定事件

    <div id="app"> <select v-model="selectItem" @change="selectFn($eve ...

  3. OO第二单元作业总结【自我反思与审视】

    第二单元作业的完成史,就是一部心酸的血泪史…… 多线程的出现为我(们)打开一片广阔的天地,我也在这方天地摸爬滚打,不断成长!如果说第一单元之前还对Java语法有所了解的话,那么这单元学习多线程则完全是 ...

  4. useragent大全

    分享几个常见的User-Agent,复制粘贴过来的,谢谢原创. window.navigator.userAgent 1) Chrome Win7: Mozilla/5.0 (Windows NT 6 ...

  5. PAT 1152 Google Recruitment

    1152 Google Recruitment (20 分)   In July 2004, Google posted on a giant billboard along Highway 101 ...

  6. element-ui <el-radio> 回显格式为中文 传值格式为数值

    <template> <!-- 需求:使用 <el-radio> 关于性别单选 前端显示中文,传值为Number --> <div class="d ...

  7. js中for(var key in o ){};用法小记

    o不只可以是对象,key也不只可以是对象中的键. o也可以是一个数组,这时候的key就是数组的下标,从"0"开始,注意下标“0”是个字符串类型. 但是这种循环在 IE8浏览器下 对 ...

  8. springBoot 随笔(二)

    此文为springBoot 结合 thymeleaf ,解析后台接口数据展示到html页面 基于 springBoot(一)工程. 1/ 引用 thymeleaf 组件依赖 <!-- depen ...

  9. [CentOS 7] TexLive2017中kpsewhich Bug的修复

    使用TexLive有一段时间了,从2015到2017,一直运行如常. 最近,想把以前的文档重新编译,却发现不能正常运行,费了好大一番工夫,才终于修复了这个bug,记录如下. 问题描述:编译一个简单的 ...

  10. 网络编程-day3

    ---恢复内容开始--- 一.缓冲区:  将程序和网络解耦 输入缓冲区 输出缓冲区 每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区. write()/send() 并不立即向 ...