java初级第12天总结笔记
来源:互联网 发布:知乎手机客户端打不开 编辑:程序博客网 时间:2024/05/08 18:12
/**
一、数组
1、数组是什么?
数组就是一个容器,可以用来装【很多数据元素】,是一种特殊数据类型,引用数据类型。
容器简单理解:容器就像一个装【冰块】的【冰格】,可以装很多的【冰块】。
数组就是【冰格】,数组的元素就是【冰块】。
2、为什么需要它?
之前学的数据类型,基本类型,String,自定义类型都是只能装一个值!!!
有时候我们定义的变量需要装多个数据的时候。
例如:
喜欢的食物,喜欢的明星,喜欢的数字,喜欢的运动,拥有的手机,拥有的朋友。这些数据 可以通过数组来存储。
3、数组的定义
a)数组描述的是统一类型的若【长度固定】干个数据;
b)数据按照一定的先后次序排列(位置:0到length-1)组合而成。 其中,每一个数据称作一个数组元素。
数组的特点
1)数组的元素-》统一类型
2)数组的长度固定-》创建数组的时候长度就确定了
数组是引用类型-》存储数据靠数组对象
创建数组对象两种方式
1)静态初始化创建对象:(a)知道数组长度b)知道数组内容)创建数组对象的时候,同时把数组内容放入到数组中。
定义引用 指向 静态初始化创建对象
语法:
数组元素的类型 [] 引用变量名= new 数组元素的类型 []{元素值1,元素值2...};
2)动态初始化创建对象
动态初始化创建对象:a)只知道数组长度
定义引用 指向 动态初始化创建对象
语法:
数组元素的类型 [] 引用变量名= new 数组元素的类型 [数组长度];
注意点
1)动态初始化后数组元素都有默认值-》规则和成员变量一致。
怎么操作访问的数组的内容
1)访问数组的元素:通过绑定的下标访问
下标范围:0到len-1
a)拿到数组指定位置的元素值:
语法:元素类型 接受元素值的变量= 数组引用[下标];
b)往数组指定位置设置元素值:
语法:数组引用[下标]=元素值;
2)访问数组的长度
语法:数组引用.length属性;注意点:字符串中是length()方法
3)数组遍历-访问数组的所有的元素--》for循环
for(int idx=0;idx<=数组引用.length-1;idx++){
//得到当前元素
数组类型 变量= 数组引用[idx];
二、数组的特点
1)统一类型:存储的数组元素是统一的类型,可以类型兼容,自动类型转换
a)基本类型: 小数据范围类型 转 大数据范围类型
b)引用类型: 子类型 转 超类型
2)长度固定:创建数组对象的时候,长度就设置好了以后不能改变
3)数组下标-范围(0到len-1)-》访问的时候不能越界
--》否则报错ArrayIndexOutOfBoundsException
4)内存连续:数组底层内存区域是连续的,访问(读取和设置效率 高)
5)存储在堆中:引用类型,每一个数组都是对象存储在堆中
6)数组的元素类型是引用类型,那么数组所有元素位置存储的是对象地址
7)数组的超类型指向子类型
满足:数组引用的数组元素的类型 是数组对象 的数组元素的类型的超类型
8)Object也是数组的超类型
三、冒泡排序:
核心逻辑:
1)每一趟确定一个数位置
2)n个数需要(n-1)趟(每一趟确定一个数准确位置)
3)每一趟需要进行(n-i(第几趟))次比较(每一次比较,确定比较的两个数的位置)
4)前面和后面两个数的位置,升序和降序,从小到大(升序)就把大的放后面,反之(降序)把小的放后面。
四、二分法查找
核心逻辑:
1)先对容器的元素进行升序排列
2)遍历容器 进行搜索元素,假设搜索的元素就在中间的位置
3)把中间位置的元素与我们要找的元素进行比较,改变我们的开始和结束的查找位置
a) 中间位置大:结束位置设置为中间位置-1
b)中间位置小:开始位置设置为中间位置+1
c)相等:找到了,返回中间的下标
五、二维数组
二维数组动态初始化
定义二维数组引用变量 指向 动态初始化的二维数组
语法1:提供(行长度-二维数组的长度,列长度-二维数组的元素(一维数组)的长度)
一维数组元素的类型[][] 二维数组名=new 一维数组元素的类型[行长度][列长度];
注意点:
a)二维数组的元素一维数组的元素-都有默认值-规则和成员变量一致。
b)表格里每一个单元格都有默认值-规则和成员变量一致。
语法2::提供(行长度-二维数组的长度)
一维数组元素的类型[][] 二维数组名=new 一维数组元素的类型[行长度][];
注意点:
a)二维数组的元素-》都是默认存储的是null-(没有提供列长度不能创建一维数组)
二维数组的访问
1) 二维数组的长度
二维数组名.length
2)二维数组的元素(一维数组)
二维数组名[二维数组下标(第几行)]
3)二维数组的元素(一维数组)的长度
二维数组名[二维数组下标(第几行)].length
4)二维数组的元素(一维数组)的元素
二维数组名[二维数组下标(第几行)][一维数组下标(第几列)]
二维数组静态初始化
定义二维数组引用变量 指向 静态初始化的二维数组
语法1:
一维数组元素的类型[][] 二维数组名=new 一维数组元素的类型[][]{
{一维数组元素1,一维数组元素2...},//二维数组的第一个元素-》一维数组
{一维数组元素1,一维数组元素2...}//二维数组的第二个元素-》一维数组
...
};
语法2:
一维数组元素的类型[][] 二维数组名=new 一维数组元素的类型[][]{
{1行1列,1行2列...},//第1行
{2行1列,2行2列...}//第2行
一、数组
1、数组是什么?
数组就是一个容器,可以用来装【很多数据元素】,是一种特殊数据类型,引用数据类型。
容器简单理解:容器就像一个装【冰块】的【冰格】,可以装很多的【冰块】。
数组就是【冰格】,数组的元素就是【冰块】。
2、为什么需要它?
之前学的数据类型,基本类型,String,自定义类型都是只能装一个值!!!
有时候我们定义的变量需要装多个数据的时候。
例如:
喜欢的食物,喜欢的明星,喜欢的数字,喜欢的运动,拥有的手机,拥有的朋友。这些数据 可以通过数组来存储。
3、数组的定义
a)数组描述的是统一类型的若【长度固定】干个数据;
b)数据按照一定的先后次序排列(位置:0到length-1)组合而成。 其中,每一个数据称作一个数组元素。
数组的特点
1)数组的元素-》统一类型
2)数组的长度固定-》创建数组的时候长度就确定了
数组是引用类型-》存储数据靠数组对象
创建数组对象两种方式
1)静态初始化创建对象:(a)知道数组长度b)知道数组内容)创建数组对象的时候,同时把数组内容放入到数组中。
定义引用 指向 静态初始化创建对象
语法:
数组元素的类型 [] 引用变量名= new 数组元素的类型 []{元素值1,元素值2...};
2)动态初始化创建对象
动态初始化创建对象:a)只知道数组长度
定义引用 指向 动态初始化创建对象
语法:
数组元素的类型 [] 引用变量名= new 数组元素的类型 [数组长度];
注意点
1)动态初始化后数组元素都有默认值-》规则和成员变量一致。
怎么操作访问的数组的内容
1)访问数组的元素:通过绑定的下标访问
下标范围:0到len-1
a)拿到数组指定位置的元素值:
语法:元素类型 接受元素值的变量= 数组引用[下标];
b)往数组指定位置设置元素值:
语法:数组引用[下标]=元素值;
2)访问数组的长度
语法:数组引用.length属性;注意点:字符串中是length()方法
3)数组遍历-访问数组的所有的元素--》for循环
for(int idx=0;idx<=数组引用.length-1;idx++){
//得到当前元素
数组类型 变量= 数组引用[idx];
二、数组的特点
1)统一类型:存储的数组元素是统一的类型,可以类型兼容,自动类型转换
a)基本类型: 小数据范围类型 转 大数据范围类型
b)引用类型: 子类型 转 超类型
2)长度固定:创建数组对象的时候,长度就设置好了以后不能改变
3)数组下标-范围(0到len-1)-》访问的时候不能越界
--》否则报错ArrayIndexOutOfBoundsException
4)内存连续:数组底层内存区域是连续的,访问(读取和设置效率 高)
5)存储在堆中:引用类型,每一个数组都是对象存储在堆中
6)数组的元素类型是引用类型,那么数组所有元素位置存储的是对象地址
7)数组的超类型指向子类型
满足:数组引用的数组元素的类型 是数组对象 的数组元素的类型的超类型
8)Object也是数组的超类型
三、冒泡排序:
核心逻辑:
1)每一趟确定一个数位置
2)n个数需要(n-1)趟(每一趟确定一个数准确位置)
3)每一趟需要进行(n-i(第几趟))次比较(每一次比较,确定比较的两个数的位置)
4)前面和后面两个数的位置,升序和降序,从小到大(升序)就把大的放后面,反之(降序)把小的放后面。
四、二分法查找
核心逻辑:
1)先对容器的元素进行升序排列
2)遍历容器 进行搜索元素,假设搜索的元素就在中间的位置
3)把中间位置的元素与我们要找的元素进行比较,改变我们的开始和结束的查找位置
a) 中间位置大:结束位置设置为中间位置-1
b)中间位置小:开始位置设置为中间位置+1
c)相等:找到了,返回中间的下标
五、二维数组
二维数组动态初始化
定义二维数组引用变量 指向 动态初始化的二维数组
语法1:提供(行长度-二维数组的长度,列长度-二维数组的元素(一维数组)的长度)
一维数组元素的类型[][] 二维数组名=new 一维数组元素的类型[行长度][列长度];
注意点:
a)二维数组的元素一维数组的元素-都有默认值-规则和成员变量一致。
b)表格里每一个单元格都有默认值-规则和成员变量一致。
语法2::提供(行长度-二维数组的长度)
一维数组元素的类型[][] 二维数组名=new 一维数组元素的类型[行长度][];
注意点:
a)二维数组的元素-》都是默认存储的是null-(没有提供列长度不能创建一维数组)
二维数组的访问
1) 二维数组的长度
二维数组名.length
2)二维数组的元素(一维数组)
二维数组名[二维数组下标(第几行)]
3)二维数组的元素(一维数组)的长度
二维数组名[二维数组下标(第几行)].length
4)二维数组的元素(一维数组)的元素
二维数组名[二维数组下标(第几行)][一维数组下标(第几列)]
二维数组静态初始化
定义二维数组引用变量 指向 静态初始化的二维数组
语法1:
一维数组元素的类型[][] 二维数组名=new 一维数组元素的类型[][]{
{一维数组元素1,一维数组元素2...},//二维数组的第一个元素-》一维数组
{一维数组元素1,一维数组元素2...}//二维数组的第二个元素-》一维数组
...
};
语法2:
一维数组元素的类型[][] 二维数组名=new 一维数组元素的类型[][]{
{1行1列,1行2列...},//第1行
{2行1列,2行2列...}//第2行
0 0
- java初级第12天总结笔记
- java初级第13天总结笔记
- java初级第14天总结笔记
- java初级第15天总结笔记
- java初级第16天总结笔记
- java初级第17天总结笔记
- java初级第18天总结笔记
- java初级第19天总结笔记
- java初级第20天总结笔记
- java初级第10天笔记资料
- java初级第11天笔记资料
- 初级Java学习笔记总结
- 课堂笔记学习java(初级)第一节课
- Java初级第三天
- 课堂笔记学习java(初级)第三节课
- Java初级总结
- java 初级学习笔记
- Java初级笔记_1
- Activity 生命周期回调方法汇总表。
- VideoView,SurfaceView(SurfaceHolder)的关系
- LeetCode - 13. Roman to Integer
- TabLayout,ViewPager,Fragment组合页卡
- Android aar打包及引用
- java初级第12天总结笔记
- NKOI 2447 最近公共祖先
- ubuntu中手动编译源码安装Xorg-server过程中依赖关系的解决
- java初级第13天总结笔记
- Qt HTTP POST json 访问服务器
- 浅谈MVP架构的实现方式(架构思想)
- 5-2 一元多项式的乘法与加法运算
- 富文本带属性的字符串NSMutableAttributedString
- iOS内存管理