Java数组(定义初始化及5大方法详解)

Java数组(定义初始化及5大方法详解)-mikechen

Java数组的定义

数组是一种数据结构,用来存储同一类型的集合,Java数组也就是数组的实现方式。

Java数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成,其中每一个数据称作一个数组元素。

每个数组元素可以通过一个下标来访问它们,具体如下图所示:

Java数组(定义初始化及5大方法详解)-mikechen

 

Java数组的特点

1)在内存中申请一块连续的空间;

2) 数组下标从 0 开始;

3) 数组的类型只能是一个,且固定,在申明时确定;

4) 数组按照索引查询元素,速度很快,时间复杂度为O(1);

5)添加、删除元素的操作很耗时间,因为要移动其他元素,时间复杂度为O(n)。

 

Java数组的常用示例

1.定义数组

1)定义字符串数组

String[] s=new String[5]

2)定义整型数组

int[] i=new int[5];

3)静态初始化数组

String[] s={"a","b","c"};

4)动态初始化数组

int[] a = new int[2];
a[0]=1;
a[1]=2;

 

2.数组元素访问

通过数组名[索引] 的方式可以访问数组:

int[] arr = new int[3];         // 0 1 2

 // 数组名[索引]  访问数组容器中的空间位置
 System.out.println(arr[0]);     // 0  系统自动分配的默认初始化值
 System.out.println(arr[1]);
 System.out.println(arr[2]);

 

3.数组遍历

1)for循环遍历

方法一:for循环遍历

    public static void main(String[] args) {
        int Arr[][]={{1,2,3},{4,5,6}};
        for (int i = 0; i < Arr.length; i++) {
            for (int j = 0; j < Arr[i].length; j++) {
                System.out.print(Arr[i][j]+" ");
            }
        }
    }

 

2)foreach遍历

方法二:foreach遍历

        int a[] = {1,2,3,4} ;
        for (int element:a){
            System.out.println(element);

        }

 

3)工具类遍历

方法三:Arrays工具类中toString静态方法遍历

        int a[] = {1,2,3,4} ;
        int b[][] = {{3,4},{1,2}};
        System.out.println(Arrays.toString(a));
        System.out.println(Arrays.deepToString(b));

 

4.数组合并

以字符串数组为例,代码示例如下:

String[] aa = {"11","22","33"};
String[] bb = {"44","55","66"};
String[] cc = {"77","88","99"};

// 合并两个数组
String[] dd = new String[aa.length + bb.length];
System.arraycopy(aa, 0, dd, 0, aa.length);
System.arraycopy(bb, 0, dd, aa.length, bb.length);

 

5.数组扩容

//数组扩容
        String[] names = new String[]{"A", "B", "C"};
        String[] extended = new String[5];
        extended[2] = "D";
        extended[4] = "E";
        System.arraycopy(names, 0, extended, 0, names.length);
        System.out.println("names:" + Arrays.toString(extended));

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法