java进阶(9)--数组

一、基本概念:
1、数字为引用数据类型
2、数组实际上是一个容器,可以同时容纳多个元素
3、数组可存储基本数据类型,也可以存储引用数据类型的数据
4、数组一旦创建、长度不可变、且数组中元素类型必须统一
5、数组可以通过Length获取长度
6、数组中每个元素都有下标,0开始,以1递增,最后一个元素下标:Length-1
7、数组优点:查询某个下标的元素时候效率较高
8、数组缺点:数组增删元素效率比较低,无法存储大数据量
 
二、数组语法:
1、数组类型,以及动态初始化时默认值
int[] array1          --0
double[]array      --0.0
boolean[]array3  --false
String[]array4     --null
Object[]array5    --null(引用类型)
short[]array6      --0
long[]array7       --0.0L
float[]array8       --0.0F
char[]array9       --\u000
2、初始化
静态初始化:
int[]array1=new int[]{100,200,300};
动态初始化:默认值0
int[]array1=new int[5];
3、(反向)遍历一维数组
 
三、方法的参数为数组
1、参考示例
2、再说main方法,传递参数
Idea-run-editconfig-设置传递参数
 
四、数组存储为引用数据类型(结合多态实现)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package cnblogs;
public class TestAdvance09array4 {
    public static void main(String[] args) {
        Cat a1=new Cat();
        Bird a2=new Bird();
        Animal[] animals={a1,a2};
        for(int i=0;i<animals.length;i++){
            //调用公有的方法
            animals[i].move();
            //特有方法需要向下转型
            if( animals[i] instanceof Cat) {
                Cat cat=(Cat)animals[i];
                cat.catchMouse();
            }
            else if( animals[i] instanceof Bird){
                Bird bird=(Bird)animals[i];
                bird.sing();
            }
        }
        }
}
  
class Animal{
    public void move(){
        System.out.println("Animal 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("鸟在唱歌...");
    }
}
查询运行结果:
 
五、数组扩容(效率较低,因涉及到全量的拷贝)
1、arraycopy()方法,4个参数:
(1)源数组(2)起始下标(3)目标数组(4)起始下标(5)长度
2、示例代码
 
六、二维数组
1、二维数组的遍历
2、二维数组的入参传递
 
posted @   Mrwhite86  阅读(149)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示