java数组

java数组,第1张

目录

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/724577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)