数组加强和Arrays工具类

数组操作

冒泡排序

假定数组中第一个值最大 依次和后面的值做比较 如果前面的值比后面的大,则前面的值和后面的值交换位置

//冒泡排序
int[] arr={12,3.5,8,2,15};
//
public static int[] maoPao(int[] arr){
    int change;//定义变量
    for(int j=0;jarr[i+1]){//当前面的元素的值大于后一位的,互换值
                change = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = change;
            }
        }
    }
}

二分搜索

使用的前提是:被查找的数组中的元素必须是有序的

/*
1.定义一个方法,名字为binarySearch(int ele,int[] src)
2.  先查找数组中间位置(索引)出的元素和ele比较
3.  定义三个变量 
最小索引 minIndex
最大索引maxIndex
中间索引 (minIndex + maxIndex) / 2
4.  比较判断确定范围
*/
//定义最大索引,最小索引,中间索引
public static int mappao(int a,int[] arr){
    int maxIndex=arr.length-1;
    int minIndex=0;
    int midIndex=(maxIndex+minIndex)/2;
    //判断条件确定
    while(minInndex<=maxIndex){
        if(a==arr[midIndex]){//a的值等于中间索引对应的元素的值
            return midIndex;
        }
        else if(a>arr[midIndex]){//a的值大于中间索引对应的元素的值
            minIndex=midIndex+1;
        }
        else{//a的值小于中间索引对应的元素的值
            maxIndex=midIndex-1;
        }
        midIndex=(maxIndex+minIndex)/2;
    }
    return -1;
}

二维数组

  • 数组是一个引用数据类型

  • 遍历方式和一般数组一样

//创建方式(这里是把int[]看做一个数据类型)
//数据类型[] 数组名=new 数据类型[]
//动态打印
int[][] arr=new int[长度][];//长度是二维数组里数组的个数
例如:
int[][] arr=new int[2][3];//2代表的是二维数组的长度 3代表的是元素数组的长度
//静态打印
int[][] arr={{2,1},{4,3}}

Arrays工具类

Java已经帮我们写了的,比较具有代表性的 Arrays工具类,我们可以直接调用

//调用语法
java.util.Arrays.方法名()

注意

  • 查询工具类中的方法
  • 常用的方法 参数类型 返回值

增强for循环

增强for循环(foreach) 没有索引,凡是涉及有索引相关操作还是用普通for循环

//语法结构
for(数据类型 变量名:源){//源指的是要遍历的数组或集合
    执行语句;
}

可变参数

//语法结构
数据类型...变量名
int...a;
  • 其实本质上也是一个数组
  • 使用可变参数 像遍历数组一样遍历
  • 可以传0或者多个同类型的参数
  • 可变参数只能放在参数列表的末尾

你可能感兴趣的:(数组加强和Arrays工具类)