java基础之数组

1、数组是什么?

数组就是一个容器,可以用来装【很多数据元素】,是一种特殊数据类型,引用数据类型。

容器简单理解:容器就像一个装【冰块】的【冰格】,可以装很多的【冰块】。

数组就是【冰格】,数组的元素就是【冰块】。


2、为什么需要它?
之前学的数据类型,基本类型,String,自定义类型都是只能装一个值!!!
有时候我们定义的变量需要装多个数据的时候。
变量,参数,返回值--》装入多个数据
例如:
喜欢的食物,喜欢的明星,喜欢的数字,喜欢的运动,拥有的手机,拥有的朋友。这些数据 可以通过数组来存储。

3、数组的定义
    a)数组描述的是统一类型的【长度固定】若干个数据;

    b)数据按照一定的先后次序排列(位置:0到length-1)组合而成。 其中,每一个数据称作一个数组元素。

4.数组的遍历-》取出数组里所用到元素
     * 语法:
     *
     * for(int idx=0;idx<=数组引用.length-1;idx++){//idx 数组下标
     *       //取出元素
     *    数组元素类型  接收变量=  数组引用[idx];

5.访问数组-使用数组存储取出数据
     *
     * 1)访问数组的位置(下标,索引)->范围:0到length-1
     *   语法:数组引用[位置]
     *   a)把值放入数组的位置
     *     数组引用[位置]=值;
     *   b)取出数组位置的值
     *     数组元素类型  接收的变量=数组引用[位置]
     * 2)访问数组的长度
     *   语法:数组引用.length

6.创建数组对象
     *
     * 1)动态初始化:a)知道数组长度
     *
     * 语法(定义数组引用  指向 动态态初始化的数组对象):
     *
     * 元素类型[]  引用变量名=new  元素类型[长度];
     *
     * 注意点:
     * 动态初始化创建的数组,数组的各位置上都有默认值-》规则和成员变量一致...

7.创建数组对象
     *
     * 1)静态初始化:a)知道数组长度 b)知道元素的内容
     *
     * 语法(定义数组引用  指向  静态初始化的数组对象):
     *
     * 元素类型[]  引用变量名=new  元素类型[]{元素值1,元素值2...};

8.定义变量
     * 语法:  数据类型  变量名;
     *
     * 定义数组的引用变量
     * 语法1:
     * 元素类型[]  引用变量名;(java-》推荐)
     *
     * 语法2:
     * 元素类型  引用变量名[];(c保留)

9.数组的注意点
    
    1)统一类型:存储的数组元素是统一的类型,可以类型兼容,自动类型转换
           a)基本类型:    小数据范围类型    转    大数据范围类型
           b)引用类型:    子类型    转    超类型
    2)长度固定:创建数组对象的时候,长度就设置好了以后不能改变
    3)数组下标-范围(0到len-1)-》访问的时候不能越界
     --》否则报错ArrayIndexOutOfBoundsException
    4)内存连续:数组底层内存区域是连续的,访问(读取和设置效率 高)
    5)存储在堆中:引用类型,每一个数组都是对象存储在堆中
    6)数组的元素类型是引用类型,那么数组所有元素位置存储的是对象地址
    7)数组的超类型指向子类型
    满足:数组引用的数组元素的类型  是数组对象 的数组元素的类型的超类型
    8)Object也是数组的超类型

10.Arrays类:封装了数组常见操作的工具方法
对数组里的内容做一定处理满足业务要求

a)数组里所有元素转字符串
    Arrays.toString

b)数组填充-初始化
    Arrays.fill

c)数组copy
    System.arraycopy
    Arrays.copyOf

d)数组排序
    Arrays.sort(a);
怎么实现对引用类型排序(???)
    1)comparable接口
    2)comparator接口(自学)

f)二分法查找(自学)
    Arrays.binarySearch

g)asList(学了容器说)

11.多维数组(数组的元素也是数组)
注意:通常使用二维数组就够了,最多不超过三维,否则逻辑会很复杂,请检查算法问题。

数组的元素类型    [] 数组引用变量;

int [] [] []arr2 ;    其元素是int [] []类型
int [] [] arr3;    其元素是int [] 类型
int [] arr4;    其元素是int 类型

例如:
1)存储公司2个员工最近3个月的工资。
 2)存储班上3个同学4门科目的成绩。

简单理解:
 1)二维数组理解可以理解为表格,分为行跟列
 2)二维数组有多少个元素(一维数组)就是多少行
 3)二维数组的元素(一维数组)有多少个元素就是多少列
 4)每一行的列数可以不相同

12.二维数组的访问-和一维数组规则一致
        a)访问 长度   .length
        b)访问数组位置      []
     *
     * 二维数组的访问-》
     *a)访问二维数组的长度
     *    语法: 二维数组.length
     *b)访问二维数组的元素(一维数组)
     *  语法: 二维数组[行下标]
     *c)访问二维数组的元素(一维数组)的长度
     *    语法: 二维数组[行下标].length
     *d)访问二维数组的元素(一维数组)的元素
     *    语法: 二维数组[行下标][列下标]
     *    
     * 遍历二维数组里所有的一维数组的元素
     *  
     *  语法:
     *  遍历二维数组里所有的行
     *  for(int rowIdx=0;rowIdx<=二维数组.length-1;rowIdx++){
     *     遍历当前行的所有的列
     *     for(int colIdx=0;colIdx<=二维数组[rowIdx].length-1;colIdx++){
     *         //当前行的当前列
     *         二维数组[rowIdx][colIdx]

13.二维数组动态初始化
     *
     * 定义二维数组引用  指向    动态初始化的二维数组对象
     *
     * 语法1:如果每一行列的长度一致-》采用该语法
     * 一维数组元素类型 [][]  二维数组引用名 =  new 一维数组元素类型 [行长度][列长度];
     *
     * 注意点:该语法,会创建行长度的二维数组,并为每一个位置创建一个列长度的一维数组。
     *
     *
     * 语法1:如果每一行列的长度不一致-》采用该语法
     * 一维数组元素类型 [][]  二维数组引用名 =  new 一维数组元素类型 [行长度][];
     *
     * 注意点:该语法,会创建行长度的二维数组,并为每一个位置设置null。

14.二维数组静态初始化
     *
     * 定义二维数组引用  指向    静态初始化的二维数组对象
     * 语法:
     * 一维数组元素类型 [][]  二维数组引用名 =  new 一维数组元素类型 [][]{
     *       {1行1列,1行2列,...},//二维数组第1行内容
     *       {2行1列,2行2列,...}//二维数组第2行内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
探索全栈前端技术的魅力:HTML+CSS+JS+JQ+Bootstrap网站源码深度解析 在这个数字化时代,构建一个既美观又功能强大的网站成为了许多开发者和企业追逐的目标。本份资源精心汇集了一套完整网站源码,融合了HTML的骨架搭建、CSS的视觉美化、JavaScript的交互逻辑、jQuery的高效操作以及Bootstrap的响应式设计,全方位揭秘了现代网页开发的精髓。 HTML,作为网页的基础,它构建了信息的框架;CSS则赋予网页生动的外观,让设计创意跃然屏上;JavaScript的加入,使网站拥有了灵动的交互体验;jQuery,作为JavaScript的强力辅助,简化了DOM操作与事件处理,让编码更为高效;而Bootstrap的融入,则确保了网站在不同设备上的完美呈现,响应式设计让访问无界限。 通过这份源码,你将: 学习如何高效组织HTML结构,提升页面加载速度与SEO友好度; 掌握CSS高级技巧,如Flexbox与Grid布局,打造适应各种屏幕的视觉盛宴; 理解JavaScript核心概念,动手实现动画、表单验证等动态效果; 利用jQuery插件快速增强用户体验,实现滑动效果、Ajax请求等; 深入Bootstrap框架,掌握移动优先的开发策略,响应式设计信手拈来。 无论是前端开发新手渴望系统学习,还是资深开发者寻求灵感与实用技巧,这份资源都是不可多得的宝藏。立即深入了解,开启你的全栈前端探索之旅,让每一个网页都成为技术与艺术的完美融合!
探索全栈前端技术的魅力:HTML+CSS+JS+JQ+Bootstrap网站源码深度解析 在这个数字化时代,构建一个既美观又功能强大的网站成为了许多开发者和企业追逐的目标。本份资源精心汇集了一套完整网站源码,融合了HTML的骨架搭建、CSS的视觉美化、JavaScript的交互逻辑、jQuery的高效操作以及Bootstrap的响应式设计,全方位揭秘了现代网页开发的精髓。 HTML,作为网页的基础,它构建了信息的框架;CSS则赋予网页生动的外观,让设计创意跃然屏上;JavaScript的加入,使网站拥有了灵动的交互体验;jQuery,作为JavaScript的强力辅助,简化了DOM操作与事件处理,让编码更为高效;而Bootstrap的融入,则确保了网站在不同设备上的完美呈现,响应式设计让访问无界限。 通过这份源码,你将: 学习如何高效组织HTML结构,提升页面加载速度与SEO友好度; 掌握CSS高级技巧,如Flexbox与Grid布局,打造适应各种屏幕的视觉盛宴; 理解JavaScript核心概念,动手实现动画、表单验证等动态效果; 利用jQuery插件快速增强用户体验,实现滑动效果、Ajax请求等; 深入Bootstrap框架,掌握移动优先的开发策略,响应式设计信手拈来。 无论是前端开发新手渴望系统学习,还是资深开发者寻求灵感与实用技巧,这份资源都是不可多得的宝藏。立即深入了解,开启你的全栈前端探索之旅,让每一个网页都成为技术与艺术的完美融合!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值