今日内容
数组排序
数组应用
对为数组 扩展
数组炒作:数组的扩容 复制 去重 排序 查找
1.可变参数
调用方法时:形参和形参要一一对应:个数,类型,顺序
形参:可以变化的值
public static void main(String[] args) {
// TODO Auto-generated method stub
//调用方法:调用可变参数的方法是,方法的擦书可以不用传递数组,直接传递类型相符的实参值即可
getName2("张三","张三air","张三+","张三pro","张三plus","张三max","张三mini","张三S","","","");
String[] name= {"张三","张三air","张三+","张三pro","张三plus","张三max","张三mini"};
getName2(name);
printNum(1,2,3,4,5,6,7,8,9);
}
//随机点名
//参数:可变参数
public static void getName(String[] names) {}
public static void getName2(String...names) {
//String...names 可变参数,在方法体内部当作String类型的数组来用
Random rd=new Random();
int index=rd.nextInt(names.length);
String name=names[index];
System.out.println(name+" :回答问题");
}
//方法中既有普通参数又有可变参数,可变参数一定在参数列表的最后
public static void printNum(int num1,int num2,int...nums) {
System.out.println(num1+""+num2);
ArrayUtil.printInAry(nums);
}
2.数组的排序,重点
int[] ary={321,54,682,153,5432,64,87,4};
升序排序:从小往大排
降序排序:从大往小排
-
冒泡排序:
- 规律:轮数—数组长度-1
int[] ary={6541,651,18,62137,285,12132,65}; //外层控制比较的次数 ArrayUtil.printInAry(ary); for(int i=0;i<ary.length-1;i++) //内层是每轮中,两两相邻进行比较 for(int j=0;j<ary.length-i-1;j++) if(ary[j]>ary[j+1]) { //交换 int temp=ary[j]; ary[j]=ary[j+1]; ary[j+1]=temp; } ArrayUtil.printInAry(ary);
-
选择排序
- 规律:某个元素和其后面的每个元素都进行比较,交换位置
//选择排序 int[] ary= {2,654,231,8,054,12,5}; System.out.println("排序前"); ArrayUtil.printInAry(ary); System.out.println("排序中"); //外层循环控制轮数 for(int i=0;i<ary.length-1;i++) { for(int j=i+1;j<ary.length;j++) { if(ary[i]>ary[j]) { int temp=ary[i]; ary[i]=ary[j]; ary[j]=temp; } } ArrayUtil.printInAry(ary); } System.out.println("排序后"); ArrayUtil.printInAry(ary);
-
Arrays. Sort(ary);` 升序排列,使用的是冒泡
3.二维数组
一维数组:数组的元素就是普通的值,
二维数组:数组的元素又是一个数组。
· 超级面试题:二维数组,八皇后
总结
1.可变参数
2.数组排序 冒泡,选择 Arrays.sort(ary);
3.二维数组
声明
赋值
遍历