一.数组的基本使用
1.遍历打印数组;
2.计算数组元素之和;
3.计算数组里的最大值;
//数组的使用;
//打印所有数组;
double arr1[]= {2.9,5.5,9.5,4.8};
for(int i=0;i<arr1.length;i++) {
System.out.println("数组arr1[]"+i+"为:"+arr1[i]);
}
System.out.println();
//计算所有元素的总和
double sum=0;
for(int i=0;i<arr1.length;i++) {
sum+=arr1[i];
}
System.out.println("总和sum为:"+sum);
System.out.println();
//计算数组里的最大值
double max=arr1[0];
for(int i=1;i<arr1.length;i++) {
if(arr1[i]>max) {
max=arr1[i];
}
}
System.out.println("最大值为:"+max);//找了半天的bug 结果是这里出问题了……
System.out.println(); //要在for循环后面执行打印;
}
二.数组的倒放
//数组的倒放
String[]arr=new String[] {"GG","MM","AA","TT","ZZ"};
//倒放方法
for(int i=0,j=arr.length-1;i<j;i++,j--) {
String temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
//输出循环遍历
for(int i=0;i<arr.length;i++) {
System.out.println(arr[i]+"\t");
}
三.数组某个元素的查找
//查找
String[]arr=new String[] {"GG","MM","AA","TT","ZZ"};
String dest="MM";
boolean isFlag=true;
for(int i=0;i<arr.length;i++) {
if(dest.equals(arr[i])) {
System.out.print("找到您所指定的元素咯,位置为"+i);//找到您所指定的元素咯,位置为1;
isFlag=false;
break;
}
}
if(isFlag) {
System.out.print("很抱歉,您所找的数字不在服务区内啦");
}
四.冒泡排序(值得剖析的典中典)
//冒泡排序
//在原基础上,又沉底了一个较大值,内层循环就可以每一大循环后少循环一次;
//外层第1次循环 i=0;j<6;
//外层第2次循环 i=1;j<5;
//外层第3次循环 i=2;j<4;
//外层第4次循环 i=3;j<3;
//外层第5次循环 i=4;j<2;
//外层第6次循环 i=5;j<1;
int arr1[]=new int[] {-6,7,5,3,9,6,9}; //arr1.length=7;
for(int i=0;i<arr1.length-1;i++) { //外层大循环;一共7个数,进行6次循环就够了;
for(int j=0;j<arr1.length-1-i;j++) { //内层继续循环;此时的j会随着i的迭代重新int;
if(arr1[j]>arr1[j+1]) { //这里我们是从小到大排序,如果前边的元素大于后边的元素,就转换;
int temp=arr1[j]; //这里的交换程序代码,敲得多了就会发现前一个交换的后边的元素是下一个交换的前边的元素;
arr1[j]=arr1[j+1];
arr1[j+1]=temp;
}
}
}
for(int i=0;i<arr1.length;i++) { //在for循环外部打印输出遍历数组;
System.out.print(arr1[i]+" "); //-6 3 5 6 7 9 9
}
五.常用的Arrays工具类的使用
//Arrays工具类的使用 //import java.util.Arrays;
//1.判断两个数组是否相等;
int arr1[]=new int[] {1,2,3,4};
int arr2[]=new int[] {4,3,2,7};
boolean isEquals=Arrays.equals(arr1, arr2);
System.out.println(isEquals); //false;
//2.输出数组信息;
System.out.println(Arrays.toString(arr1)); //[1, 2, 3, 4];
//3.将指定值填充到数组中;
Arrays.fill(arr1,5);
System.out.println(Arrays.toString(arr1)); //[5, 5, 5, 5];
//4.对数组进行排序;
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2)); //[2, 3, 4, 7];
//5.binary search 二元查找;
int[]arr3=new int[] {1,2,3,4,5,6,7,89}; //负数和0以及未在数组内的数字都不会找到;
int index=Arrays.binarySearch(arr3, 89);
if(index>=0) {
System.out.println(index); //7;
}else {
System.out.println("抱歉,无法找到!");
}