数组操作
冒泡排序
引入冒泡排序:比如双色球彩票开奖号码:
- 现在有一个数组:
希望写一段代码:执行完毕之后,上面的数组中的数据变成从小到大的排序,怎么写?
1.观察手动排序,如果数据量太大,数据值也比较大,就很难去比较大小了
2.希望有一个严谨的比较规则:先相邻的两个格子进行比较,把较大的放在靠后的位置
3.代码实现
在这//第一次
if(a[0] > a[1]){
int t = a[0];
a[0] = a[1];
a[1] = t;
}
//第二次
if(a[1] > a[2]){
a[1] = a[2];
a[2] = t;
}
第三次
第四次
int t = a[1];里插入代码片
优化上面代码,使用for 循环
4上面的代码只能排列数组长度为 6 的数组,我们希望是任意数组的长度怎么做
数组变量.length
这就是 冒泡排序
Arrays工具类&API文档的使用
class Tools{
static void print(int[] arr){ .... }
static void maoPao(int[] arr){ .... }
static void erFen(int[] arr){ .... }
}
1.向上面的类似的类,Java已经帮我们写了;比较具有代表性的 Arrays工具类,
2.此类中放类很多Java已经写好的操作数组的工具方法,我们开始的时候直接调用就可以
- 工具类概念
Java开发者把经常使用的功能帮我们写好成一个类,这类里面已经实现了提供很多工具方法,供我们使用;
工具类怎么使用
假设自己有一个int数组,希望对数组中的元素进行排序(调用Arrays类中的sort方法)
API中方法的使用流程:
1.通过文档找到我们需要使用的类和方法
2.看这个方法是否有static修饰–》决定调用方式
3.看形参(调用此方法需要什么条件)
4.看结果(有些有返回值,有些没有)
现在如果看排序的结果,需要循环数组进行打印,感觉有点不爽
Arrays类里面已经提供了一个方法,类似之前写的print方法,它可以把数组转换成String 形式 进行返回—Arrays.toString(数组);
增强for循环
增强for循环的特点
1.增强for循环就是类似for循环的结构;我们叫成foreach
2.作用: 主要是用来遍历数组和集合的;
3.缺点: 没有索引,凡是涉及有索引相关操作还是用普通for循环,
增强for循环语法结构
for(源中元素类型 e : 源 ){
直接使用e就可以了
}
源 : 可以是数组或者集合(Iterable接口的实现类)
e : 形式参数,每次从源中遍历的数据,都临时存放在里面,可以在循环内部,通过e使 用到每一个元素
int[] arr = {1,2,3,4,5,6};
应用使用增强for循环 foreach遍历二维数组:
可变参数
- 可变参数是什么?
方法的形式参数,如果定义成可变参数的形式,
那么当使方法传递参数的时候,允许可以传递多个! 个数可变,类型不可变 - 可变参数使用
- 可变参数注意事项
①一个方法 可以有可变参数和普通参数,但是可变参数必须放到参数列表的最后;
②一个方法 不能有多个可变参数;