数组(Array)_java

数组
package com.bjpowernode.javase.array;
/*
  1. java 数组是一种引用数据类型 不属于基本数据类型 数组的父类是Object
  2.数组实际上是一个容器,可以同时多个元素
  3.数组当中可以存储基本数据类型也可以存储引用数据类型的数据(数组是存储在堆当中)
  4。数组一旦创建  它的长度就不能改变(在java中)
  5.数组的分类:一维数组 二维数组 三维数组  多维数组
  6.所有数组都有length属性(java自带) 用来获取数组中元素的个数
  7.java中的数组中的元素类型都要统一,person类型数组只能存储person类型
  8.数组中的元素在内存地址中是连续的
  9.数组名为首元素地址
  10. 动态初始化数组: int[] arry=new int[5];  默认为0
                    String[] arry = new String[6];  默认为null

 */

public class ArrayTest01 {
    public static void main(String[] args) {
        // 使用静态初始化的方式
        int[] arr1={1,2,3,4,5};
        System.out.println("数组的个数:"+arr1.length);
        System.out.println(arr1[arr1.length-1]);
        for(int i=0;i<arr1.length;i++)
        {
            System.out.println(arr1[i]);
        }
        // 从后遍历每一个元素
        for(int i=arr1.length-1;i>=0;i--)
        {
            System.out.println(arr1[i]);
        }
        // 使用动态初始化的方式
        int[] arr2=new int[4];

    }
}

package com.bjpowernode.javase.array;

public class ArrayTest02 {
    // 采用动态初始化数组
    public static void main(String[] args) {
        int[] arr = new int[5];
        for(int i=arr.length-1;i>=0;i--)
        {
            System.out.println(arr[i]);
        }

        // 初始化一个Object动态数组
        Object[] obj=new Object[3];
        for(int i=obj.length-1;i>=0;i--)
        {
            System.out.println(obj[i]);
        }
        System.out.println("#######################");

        String[] str=new String[3];
        for(int i=0;i<str.length-1;i++)
        {
            System.out.println(str[i]);
        }
        Object o1=new Object();
        Object o2=new Object();
        Object o3=new  Object();
        Object[] objects={o1,o2,o3};

        for(int i=0;i<objects.length;i++)
        {
            System.out.println(objects[i]);
        }

    }
}

main方法中的args 默认是为0
  • 它的默认值并不是null
  • 它的目的就是为了让用户输入
package com.bjpowernode.javase.array;

public class ArrayTest05 {
    public static void main(String[] args) {
        for(int i=0;i<args.length;i++)
        {
            System.out.println(args[i]);
        }
    }
}
模拟登录
package com.bjpowernode.javase.array;

// 模拟一个系统
public class ArrayTest06 {
    // 假设用户需要输入密码和用户名到args中
    public static void main(String[] args) {
        if(args.length!=2)
        {
            System.out.println("请输入用户名和密码");
        }
        // 程序运行到此处 说明输入格式正确

        String username=args[0];
        String password=args[1];
        // 比较两个字符串是否相等
        //  if(username.equals("abc")&& password.equals("123"))
        // 修改 防止空指针异常
        if ("abc".equals(username) && "123".equals(password))
        {
            System.out.println("登录成功");
        }
        else
        {
            System.out.println("登录失败");
        }


    }
}

数组与多态连用
package com.bjpowernode.javase.array;

public class ArrayTest07 {
    public static void main(String[] args) {
        // 创建一个Aniaml对象
        Animal a1=new Animal();
        Animal a2=new Animal();
        // Animal 数组
        Animal[] animals={a1,a2};
        for(int i=0;i<animals.length;i++)
        {
            // Animal a=animals[i];
            animals[i].move();
        }
        Cat cat=new Cat();
        Bird bird=new Bird();
        // 用数组把他们存储起来
        Animal[] ans={cat,bird};

        // 打印
        for(int i=0;i<ans.length;i++)
        {
            // 调用子类特有的方法 向下转型
            if(ans[i] instanceof Cat)
            {
                Cat cc=(Cat)ans[i];
                cc.catchmouse();
            }
            else if(ans[i] instanceof Bird)
            {
                Bird bb=(Bird)ans[i];
                bb.sing();
            }
        }

    }
}
class Animal
{
    public void move()
    {
        System.out.println("move-----------");
    }

}
class Cat extends Animal
{
    public void move()
    {
        System.out.println("猫在走猫步");
    }
    public void catchmouse()
    {
        System.out.println("猫在捉老鼠");
    }
}
class Bird extends Animal
{
    public void move()
    {
        System.out.println("鸟儿在飞翔");
    }

    public void sing()
    {
        System.out.println("鸟儿在歌唱");
    }
}
数组扩容
  • 数组扩容效率比较低 以后尽量不要扩容
package com.bjpowernode.javase.array;

public class ArrayTest08 {
    public static void main(String[] args) {
        // 拷贝源
        int[] arr={1,2,3,4,5,6,7,8};
        // 拷贝目标(将需要拷贝的数组拷贝到这里)
        int[] dest=new int[20];
        // 调用拷贝方法
        System.arraycopy(arr,0,dest,0,5);
        // 第一个参数为 要拷贝的内容
        // 第二个参数为  拷贝目标
        // 第三个参数为 拷贝的起始位置                                           
        // 第四个参数为 拷贝目标的其实位置
        // 第五个参数为 拷贝的长度
        for(int i=0;i<dest.length;i++)
        {
            System.out.println(dest[i]);
        }
    }
}

数组拷贝
package com.bjpowernode.javase.array;

public class ArrayTest08 {
    public static void main(String[] args) {
        // 拷贝源
        int[] arr={1,2,3,4,5,6,7,8};
        // 拷贝目标(将需要拷贝的数组拷贝到这里)
        int[] dest=new int[20];
        // 调用拷贝方法
        System.arraycopy(arr,0,dest,0,5);
        // 第一个参数为 要拷贝的内容
        // 第二个参数为  拷贝目标
        // 第三个参数为 拷贝的起始位置
        // 第四个参数为 拷贝目标的其实位置
        // 第五个参数为 拷贝的长度
        for(int i=0;i<dest.length;i++)
        {
            System.out.println(dest[i]);
        }

        // 数组的引用数据类型
        String[] strs={"abc","bds","ni"};
        String[] dest1=new String[20];
        System.arraycopy(strs,0,dest1,0,3);
        for(int i=0;i<dest1.length;i++)
        {
            System.out.println(dest1[i]);
        }
    }
}

二维数组
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值