java 数组详解--用最通俗的语言写出美妙的数组-

数组详解

  • 前言
  • 数组总纲
  • 一维数组
    • 创建方法
        • 扩展:
    • 数组的使用
        • 注意事项
    • 数组作为方法参数
    • 数组作为方法返回值
    • 小练习
  • 二维数组
    • 创建方法
    • 二维数组的使用
  • 总结

前言

上周末因为参加蓝桥杯 导致自己一直没时间写博客。也欠下了不少博客,今天我又一次凯旋归来!!!!!!!!!!!!

数组总纲

数组就是多个相同类型的数据 放在一起,为了简单方便,而被创造出来的一个类型呗,他不是基本数据类型 我们用数组可以实现多个变量的 “批量” 创建和修改!
记住关键字眼哦,相同类型,必须相同类型,其实学完你会发现,数组根本没法弄不同类型的数据啊!!书上还一本正经的说:在 Java 中, 数组中包含的变量必须是 相同类型(相同类型还给我加粗)牛类很啊!

一维数组

首先介绍一下一维数组吧

创建方法

java中创建一维数组的方法有三种:下面看代码。

    public static void main(String[] args) {
     
        //第一种 直接创建并初始化,称为静态初始化
        int[] array1 = {
     1,2,3,4};
        //第二种 使用关键字new 在堆区创建一个 数组。
        int[] array2 = new int[3];
        //第三种 和第二种相同 只不过初始化一下
        int[] array3 = new int[]{
     1,2,3};
        
    }

其中第二种方法 是有初始值的,因为他是在堆区,堆区系统自动初始化。下面我讲第一种和第三种方法屏蔽 大家看第二种方法的结果!
java 数组详解--用最通俗的语言写出美妙的数组-_第1张图片
在这里可以看出,数组内的元素自动被赋值为了 0 .所以在这里我说一下,堆区变量 自动初始化赋值为0;

扩展:

Arrays.toString(array2) 的意思。就是将array2内的元素转换为字符串类型。返回值为字符串

数组的使用

在使用过程中一般是与for循环嵌套使用的 比如以下代码。
java 数组详解--用最通俗的语言写出美妙的数组-_第2张图片
切记一点 在这里不要越界,比如我们有三个元素,arr[0],arr[1],arr[2] 三个元素,arr[4] 便不属于该 数组使用便会有异常,也叫做数组越界 或溢出。

注意事项

  1. 使用 arr.length 能够获取到数组的长度. . 这个操作为成员访问操作符. 后面在面向对象中会经常用到.
  2. 2.使用 [ ] 按下标取数组元素. 需要注意, 下标从 0 开始计数
  3. 使用 [ ] 操作既能读取数据, 也能修改数据. 4. 下标访问操作不能超出有效范围 [0, length - 1] , 如果超出有效范围, 会出现下标越界异常

数组作为方法参数

首先看下图代码
java 数组详解--用最通俗的语言写出美妙的数组-_第3张图片
我们如果这样实现代码,你会发现,交换数据是没法包装成一个方法的。而使用数组呢?
java 数组详解--用最通俗的语言写出美妙的数组-_第4张图片
虽然我知道代码很挫。但是 通过这个我们可以理解到,数组名代表数组的地址,而传递过去的参数也是地址 再改变参数自然就是从地址将其改变。

数组作为方法返回值

java 数组详解--用最通俗的语言写出美妙的数组-_第5张图片
其实这个代码特别好理解,。就是将数组返回 赋值给另一个数组。我相信大家学起来so easy;

小练习

一维数组学的差不多了。下面我们来了做一个小练习—自己实现toString 下面我直接写代码吧,就不罗嗦了,

 public static String myToString(int[] arr){
     
        String ret = "[";
        for (int i = 0; i < arr.length; i++) {
     
            ret = ret+arr[i];
            if(i != arr.length-1){
     
                ret = ret+",";
            }else {
     
                ret = ret+"]";
            }
        }
        return ret;
 }
 public static void main(String[] args) {
     
    int[] arr = {
     1,2,3,4,5,6};
    String ret = myToString(arr);
    System.out.println(ret);
 }

大家看一下代码,并尝试着写一下,不难的。一维数组到此结束 撒花

二维数组

创建方法

还是三种和一维一样的,我再写一遍嗷!!!!
其实二维数组 和一维数组差不多,我写一下使用情况吧,其他的似乎大家都能了解

public static void main(String[] args) {
     
    //第一种直接创建并初始化,称为静态初始化
    int[][] arr1 = {
     {
     1,2,3},{
     4,5,6},{
     7,8,9}};
    //第二种  使用关键字new 在堆区创建一个 数组。
    int[][] arr2 = new int[3][4];
    //第三种  不介绍咯
    int[][] arr = new int[][]{
     {
     1,2,3},{
     4,5,6},{
     7,8,9}};
}

记住重要的一点,。int[][] 是一个类型 中括号内不允许写东西。

二维数组的使用

第一种:比较难理解哦,新官上任三把火,先来个牛逼点的二维数组

    public static void main(String[] args) {
     
        int[][] array = new int[3][];
        array[0] = new int[4];
        array[1] = new int[5];
        array[2] = new int[4];
        for (int[] arr:array ) {
     
            for (int x : arr) {
     
                System.out.print(x+" ");
            }
            System.out.println();
        }
    }

大家猜猜打印结果是啥!!!!!!
三行的二维数组,第一行四个元素 第二行五个元素 第三行四个元素,当人new自动初始化为0;
再者就是for循环的用法了。棒棒哒,

第二种:

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

    }

其实主要就是这些 还有一点,也就是,java中 array[1][2] 中的2不能省略,而C语言可以,因为C语言的二维数组是个矩形。而java则是不规范的。
好了今天的分享就到这里了

总结

小编最近刚比完蓝桥杯,效果不是很好,但已经知道了题型,来年再战。希望大家和我一起加油哦!
小编qq:2206730228
大家可以跟我一起学习

你可能感兴趣的:(java学习,java)