java数组

目录

1、基本概念

2、声明创建初始化

3、使用

4、遍历

5、常见问题

6、多维数组


1、基本概念

  • 数组是一组类型相同的数据的集合;数组中可以存储多个数据,但是这些数据的类型必须相同;
  • 数组能够作为数据的容器使用,把多个数据集中存储;
  • 存储在数组中的数据,都有相应的索引值,可以方便获取或修改;
  • 当需要同时保存多个类型相同的变量并进行处理时,可以考虑用数组,例如:多个人的成绩、多个员工的薪资……

2、声明创建初始化

  • Java的数组本身是**引用数据类型****;**但是可存储基本数据类型,也可存储引用数据类型。
  • 数组的两种声明方式、三种创建方式:
int[] a1; 
int a2[];  

//方式一:声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值。
int[] arr1 = new int[5];
//方式二:声明数组并分配内存,同时将其初始化。arr2的长度为4,元素的值为3,5,1,7
int[] arr2 = new int[]{3,5,1,7};
//方式三:直接赋值,方式二的简化版  arr3的长度为4,元素的值为3,5,1,7
int[] arr3 = {3,5,1,7}; 

元素类型指的是数组里面存的数据类型。数组在声明后还只是一个空指针,不能使用,必须创建。

3、使用

4、遍历

(1)拷贝数组 System.arraycopy();

public static void test4(){
        int[] a={10,100,1000};
        int[] b={20,200,2000,20000};
        System.arraycopy(a,1,b,2,2);
        //(srcPos=1,destPos=2,length=2)
        for (int x : b) {
            System.out.println(x);
        }
}
/*
20
200
100
1000
*/

(2)升序排序 Arrays.sort(arr);

public static void test2(){
        int [] arr={20,-20,30,-30,5,-4};
        Arrays.sort(arr);
        for(int a:arr){
            System.out.println(a);
        }
}
/*
-30
-20
-4
5
20
30
*/

(3)二分查找 Arrays.binarySearch();

public static void test3(){
    int [] arr={20,-20,30,-30,5,-4};
    int key=5;
    for(int a:arr){
            System.out.println(a);
    }
    //二分查找,前提条件数组要排序
    System.out.println(Arrays.binarySearch(arr,key));
}

(4)遍历

public static void test02() {
        int[] arr4 = new int[5];
        arr4[0] = 20;
        arr4[0] = arr4[0] * 10;
        System.out.println(arr4[0]);
//        System.out.println(arr4);
        System.out.println("************************************");
        String[] ary = new String[5];
        ary[0] = "bjyx";
        //ary[2]=2;//数组类型为String
        ary[1] = "zsww";
        ary[3] = "lsfy";
        ary[4] = "bx";
//     ary[5]="xb";
//     索引下标越界,编译没有问题,运行不可执行Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
        String var = ary[3];
        System.out.println(ary.length);
        System.out.println(var);
        System.out.println("***************for循环******************");
        for (int i = 0; i < ary.length; i++) {//数组遍历
            System.out.println("ary第" + i + "个位置的值:" + ary[i]);
        }
        System.out.println("***********增强for遍历***********");
        for (String str : ary) {
            System.out.println(str);
        }
        System.out.println("**********使用while循环***********");
        int k = 0;
        int len = ary.length;
        while (k < len) {
            System.out.println("第" + k + "位置的值:" + ary[k]);
            k++;
        }
        System.out.println("********倒序遍历(for)***************");
        for (int i = ary.length - 1; i >= 0; i--) {
            System.out.println("第" + i + "个位置的值:" + ary[i]);
        }
        System.out.println("******倒序遍历(while)**************");
        int m = ary.length - 1;//m为索引,赋值数组索引最大位
        while (m >= 0) {
            System.out.println("第" + m + "个位置的值:" + ary[m]);
            m--;
        }
    }

5、常见问题

6、多维数组

只有一维数组的长度确定

//循环的一维数组的元素
    for(int i = 0;i<a.length;i++) {
      //数组的元素也是数组  ,循环的是数组元素的数组
      for(int j = 0;j<a[i].length;j++) {
        System.out.println(a[i][j]);
      }
      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值