JAVA基础:数组

1.数组定义

定义数组的语法
数据类型 [] 数组变量名 = new 数据类型[长度]; //定义一个有长度的数组
数据类型 [] 数组变量名 = new 数据类型[]{元素1,元素2,…}; //声明数组并赋值
数据类型 [] 数组变量名 = {元素1,元素2,…}; //声明数组并赋值
**

数组遍历

**
1.用普通for循环和增强for循环遍历数组
一维数组
//用for循环遍历
for(int i=0;i System.out.println(nums[i]); //按照数组的录入顺序输出数组每个元素
}
System.out.println(“用增强for循环遍历数组”);
//增强for循环 forEach
for(int num:nums){
System.out.print(num+" ");
}
1.求最大值 最小值 求和 平均值
对数组进行
求和
求最大值
求最小值
平均值
/
public class Demo02 {
public static void main(String[] args) {
int [] arrs = {12,22,44,89,-7};
int sum =0;
int max = 0;
int min = 89; //最小值不能比数组里的最大值小
double avg;
//遍历数组
for(int i=0;i System.out.print(arrs[i]+" ");
// 求和
sum += arrs[i];
//最大值
if(arrs[i] > max){ //如果有个元素比最大值大
max = arrs[i]; //把这个元素赋值给最大值这个变量
}
//最小值
if(arrs[i] < min){ //如果有个元素比最小值小
min = arrs[i]; //把这个元素值给最小值
}
}
avg = sum/arrs.length;
System.out.println(“数组的和是:”+sum);
System.out.println(“最大值是:”+max);
System.out.println(“最小值是:”+min);
System.out.println(“平均值是:”+avg);
}
二维数组
int [][] arrays = new int[][]{{1,2,3},{2,3,4,5}} //2行2列的一个二维数组
int [][] arrays2 = {{1,2,3,4,5},{2,3},{1,4,5}}; //3行5列的一个二维数组
3这个元素的位置:arrays2[1][1]
方法:
arrays.sort 是对数组的排序(从小到大)
1.Arrays.binarySerch 二分查找,找到则定位元素下标
2.Arrays.toString 数组的打印3.Arrays.toString 数组的打印
3.int a[] = {1,3,5,2,9};
String aString = Arrays.toString(a);//String前面的a代表数组,后面也是
System.out.println(aString);
4.Arrays.fill 数组的填充
int[] a = new int[3];
Arrays.fill(a, 3);//将所有的都填充为3
System.out.println(Arrays.toString(a));
5.Arrays.equals 判断两个数组大小是否相等
int a[] = {1,3,4};
int b[] = {2,4,8,9};
System.out.println(Arrays.equals(a, b));//结果则是两个数组大小不同
6.Arrays.asList(a) 查看数组中的特定值
int b[] = {2,4,8,9};
System.out.println(Arrays.asList(b).contains(9));//结果只能为true或者false
7.Arrays.copyOf 数组的拷贝
int b[] = {2,4,8,9};
Arrays.copyOf(b, 6);//6为数组的长度
System.out.println(Arrays.toString(b));
数组的常用查找方法
*** 普通查找
*

  • /
    public class NomalSelect {
    public static void main(String[] args) {
    int []nums = {2,3,4,5,6};
    /
    int num =5;
    for(int i=0;i if(nums[i] == num){ //传入的num和数组元素相等
    System.out.println(“元素的下标是:”+i);
    }else{
    System.out.println(“这个元素不存在!”);
    }
    }*/
    int num = 6;
    int result = putongSelect(nums,num);
    System.out.println(“该元素的的索引是:”+result);
    }
    //int返回值类型 带参方法
    public static int putongSelect(int []nums,int num){
    for(int i=0;i if(nums[i] == num){
    return i; //返回对应元素的索引
    }
    }
    return -1; //没有这个元素就返回-1
    }
    二分查找
    前提是数组是升序不重复的
  • min
  • max
  • mid
  • /
    public class HalfSearch {
    public static void main(String[] args) {
    int [] nums = {2,3,4,5,6};
    int result = halfSeac(nums,nums.length,5);
    System.out.println(“元素的索引是:”+result);
    //Arrays工具类的 binarySearch 就是二分查找
    System.out.println(Arrays.binarySearch(nums,3));
    }
    //找到就返回这个元素
    /
  • 参数分别是 数组 数组长度 要查找的数
  • */
    public static int halfSeac(int []arrs,int n,int key){
    int min = 0; //最小值
    int max = n-1; //最大值
    int mid ;
    while(min <= max){ //最小值小于 等于最大值
    mid = (min+max)/2; //求出中间值
    if(arrs[mid] == key){ //如果比较的数是中间值
    return mid; //key 就作为中间值 返回mid
    }
    if(arrs[mid] > key){ //如果中间值比你传的数大
    max = mid-1; // 往左边移动
    }
    if(arrs[mid] < key){ //如果中间值比你传的数小
    min = mid+1; //往右边移动
    }
    }
    return -1; //不存在这个数
    .冒泡排序 (升序降序)
    冒泡排序
  • 升序 降序
  • 第一次比较时候总能把最大/最小的元素值 给找出来 置最后
  • */
    public class Maopao {
    public static void main(String[] args) {
    //声明数组
    int [] arrs = {-8,7,45,2,4};
    //for循环
    for(int i=0;i for(int j=0;j //设置一个比较条件
    if(arrs[j] > arrs[j+1]){ //升序
    //交换
    int temp = arrs[j+1];
    arrs[j+1] = arrs[j];
    arrs[j] = temp;
    }
    }
    }
    //遍历输出排序后的数组元素
    for(int num:arrs){
    System.out.println(“排序完后的数组元素:”+num);
    .逆序排列
    逆序排序数组
  • /
    public class Nixu {
    public static void main(String[] args) {
    int nums [] = {-7,23,4,6,6,7};
    //循环3要素
    /
  • 初始值:int start=0,end =nums.length-1;
  • 循环条件:start
  • 循环操作:start++,end –
  • for(int start=0,end =nums.length-1;start //交换元素值
    int temp = nums[start];
    nums[start] = nums[end];
    nums[end] = temp;
    }
    //遍历输出
    for (int num:nums){
    System.out.print(num+" ");
    }

你可能感兴趣的:(JAVA基础)