您的位置:首页 > Web前端

【幻化万千戏红尘】qianfengDay11-java基础学习:数组,排序,算法

2016-08-04 10:58 429 查看
查找:二分查找

 

 

课程回顾:

 

面向对象:封装、继承、多态

重载和重写

this和super

static和final

抽象类和接口

对象转型:向上,向下

内部类:

成员内部类

匿名内部类

静态内部类

局部内部类

 

 

 

今日内容:

数组:存储一组相同数据类型的数据结构

是引用数据类型

变与不变:

变:数组的元素的值可以改变

不变:数组的长度不可改变

 

使用数组的前提:

1、确定要存储的数据类型

2、确定长度

 

数组创建方式:

1、静态化创建

格式:数据类型[] 数组名={值1,值2,……};

2、动态化创建

声明格式:

数据类型[] 数组名;

数据类型 数组名[];

初始化格式:

数组名=new 数据类型[长度];

 

格式:数据类型[] 数组名[=new 数据类型[长度]];

 

 

length:长度,数组中元素的个数

下标:索引,位置:从0开始,范围:[0,length-1];

索引的范围不能超出,否则会报数组越界异常

获取数组元素值的格式:

数组名[索引值];

 

增强for循环:

遍历输出数组的元素的值

格式:for(数组元素的数据类型 变量名:数组名)

{

变量名记录的值就是数组中各个元素的值

}

优点:精简代码,全输出

缺点:无法访问索引

 

数组存储的可以是基本数据类型,也可以是引用数据类型(包括自定义的类)

数组存储的什么类型的数据那么元素就是什么类型的数据

 

练习:创建Student类,属性自定义,方法若干,请使用数组存储3名学生,并遍历输出

 

 

 

 

 

算法:

1、排序

1、冒泡排序

相邻的2个元素依次进行比较,将符合规则的放在左边或右边

核心代码:

for(int i=0;i<arr.length-1;i++)

{

for(int j=0;j<arr.length-1-i;j++)

{

if(arr[j]>arr[j+1])

{

交换

}

}

}

2、选择排序

每趟从待排序的元素中选择最小值(最大值)放在左边或右边

3、插入排序

每次都是将arr[i],和之前的数据进行比较,符合就插入到arr[0]到arr[i-1]

2、查找

1、顺序查找

就是按照索引的顺序,获取对应的元素的值进行比较找到就返回索引

2、二分查找

根据指定的起始索引和终止索引,计算中间索引,并且验证中间索引对应的值和要查找的值的关系

等于就找到了,其他就修改起始索引或终止索引的值

 

Arrays:数组工具类

包含一些操作数组对象的静态方法

常用:

sort:排序

toString:将指定数组对象转换为字符串

binarySearch:二分查找

copyOf:复制数组

 

命令行参数:main方法的参数

是一个数组,等价于可变参数

在java命令的时候,方可传值

 

可变参数:数量可以改变的参数

 

格式:数据类型... 参数名

在方法内部是一个数组

可变参数:

在实际调用中,可以不传递实参,也可以传递多个

还能只能传递数组对象

 

一个方法最多只有一个可变参数

,并且可变参数只能是最后一个参数

 

 

 

 

扩展:

命令行参数

可变参数

 

 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐