java 2 实用教程-数组

概念:数组是相同类型的变量按顺序组成的一种复合数据类型(数组是一些类型相同的变量组成的集合),称这些相同类型的变量为数组的元素或单元。数组通过数组名加索引来使用数组的元素。

1. 声明数组

  1. 一维数组:

    数组元素类型 数组名[];

    数组元素类型 []数组名;

  2. 二维数组:

    数组元素类型 数组名[] [];

    数组元素类型 [] []数组名;

public class Hello {
​
    public static void main(String[] args) {
        int a[];
        int []b;
        double c[][];
        double [][]d;
    }
​
}
  1. 数组类型相同时也可以这样 (两种声明方法)

        public static void main(String[] args) {
            int a[],b[]; //声明一维数组a和b
            double c[][],d[][];//声明二维数组c和d
            
            int []boy,girl;//一维数组boy和girl
            boy=new int[4];//为数组分配元素,不懂下面有解释
            girl=new int[4];
            
            double [][]one,two;//二维数组one和two
            one=new double[2][2];
            two=new double[2][2];
        }
    ​
    }
  2. 注:与c/c++不同,Java不能在声明数组时在方括号内指定数组元素个数

    int [23];或int [23];
    不允许,编译也不会通过

2. 为数组分配元素

  1. 上面声明数组仅仅给出了数组变量的名字和元素的数据类型。要想使用还得给数组分配元素

    格式:

    数组名=new 数组元素的类型[数组元素的个数];

    例如:

int []boy,;//声明一维数组boy
        boy=new int[4];/*为数组分配元素,数组获得4个用来存放int类型数据的变量,即4个int型元素。*/
        boy[0]=10;//给值10,下同
        boy[1]=11;
        boy[2]=12;
        boy[3]=13;

数组变量boy中存放着这些元素的首地址,该地址称作数组的引用,这样数组就可以通过索引使用分配给他的变量,即操作它的元素。

数组属于引用型变量,数组变量中存放着数组的首元素的地址,通过数组变量的名字加索引使用数组的元素。

示意图:

  1. 声明数组和创建数组可以一起完成,二维也一样

    float boy[]=new float[4];
    float boy[][]=new float[4][3];
  2. java 采用“数组的数组“声明多维数组,一个二维数组是若干个一维数组构成的,例如,4中boy就是由4个长度为3的的一维数组boy[0],boy[1],boy[2],boy[3]构成的。

    public class Hello {
    ​
        public static void main(String[] args) {
            int a[][]=new int[4][3];
            float b[]=new float[4];
            System.out.println(a.length);//打印出a的长度
            System.out.println(b.length);
    ​
        }
    ​
    }
    结果:
    4
    4
  3. 和c不同,Java可以使用int型变量的值指定数组的元素个数。

    int size=30;
    double a[]=new double[size];

3.数组元素使用

  1. 一维数组通过索引符访问自己的元素,如上面boy[0],boy[1]等。索引从零开始,数组有5(n)个元素,索引到4(n-1)为止。二维同样

    public class Hello {
    ​
        public static void main(String[] args) {
            int a[][]= {{},{},{1,2,3},{},{}};
            float b[]= {1,2,3,4,5};
            System.out.println(a.length);//译为一个花括号为一个长度
            System.out.println(b.length);
            System.out.println(a[2][2]);//译为第三个花括号,第三个值
            System.out.println(b[0]);//第一个值
        }
    ​
    }
    结果:
    5
    5
    3
    1.0//因为数组b为float型所以为1.0

4. length的使用

public class Hello {
​
    public static void main(String[] args) {
        int a[][]=new int[4][3];
        float b[]=new float[4];
        System.out.println(a.length);//打印出a的长度
        System.out.println(b.length);
​
    }
​
}
结果:
4
4

结论:二维和一维都一样

5.数组初始化

直接赋值

public class Hello {
​
    public static void main(String[] args) {
        int a[][]= {{0,1},{3,4}};
        float b[]= {1,2};// 创建的时候就可以给值
        System.out.println(a[0][0]);
        System.out.println(b[0]+" "+b[1]);
    }
​
}
结果:
0
1.0 2.0

上面数组等价于:(先创建,再复制)

public class Hello {
​
    public static void main(String[] args) {
        int a[][]= new int[2][2];
        float b[]= new float[2];
        a[0][0]=0;
        a[0][1]=1;
        a[1][0]=3;
        a[1][1]=4;
        b[0]=1;
        b[1]=2;
        System.out.println(a[0][0]);
        System.out.println(b[0]+" "+b[1]);
    }
​
}
结果:
0
1.0 2.0

注意:不可以声明这样赋值:

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

a[] []={{1,2}{0,1}};

6.数组的引用

  1. 两个相同类型的数组如果具有相同的引用,他们就有完全相同的元素

public class Hello1 {
​
    public static void main(String[] args) {
        int a[]= {1,2,3,4};
        int b[]= {100,200,300};
        System.out.println("数组a的个数为:"+a.length);
        System.out.println("数组b的个数为:"+b.length);
        System.out.println("数组a的引用:"+a);
        System.out.println("数组b的引用:"+b);
        a=b;
        System.out.println("数组a的个数为:"+a.length);
        System.out.println("数组b的个数为:"+b.length);
        System.out.println("a[0]="+a[0]+",a[1]="+a[1]+",a[2]="+a[2]);
        System.out.println("b[0]="+b[0]+",b[1]="+b[1]+",b[2]="+b[2]);
    }
​
}
结果:
数组a的个数为:4
数组b的个数为:3
数组a的引用:[I@2ff4acd0
数组b的引用:[I@54bedef2
数组a的个数为:3
数组b的个数为:3
a[0]=100,a[1]=200,a[2]=300
b[0]=100,b[1]=200,b[2]=300
  1. char型数组使用System.out.println(a)不会输出引用,而是输出数组a的全部元素值

public class Hello2 {
​
    public static void main(String[] args) {
        char a[]= {'努','力','学','习'};
        System.out.println(a);
        System.out.println(" "+a);//输出引用正确方法
    }
​
}
结果:
努力学习
 [C@2ff4acd0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java2实用教程 rar 第1章Java入门 1 1Java的诞生 1 2Java的特点 1 3安装Sun公司的SDK 1 4一个Java程序的开发过程 1 5一个简单的Java应用程序的开发过程 1 6一个简单的Java小应用程序 1 7什么是JSP 习题 第2章标识符 关键字和数据类型 2 1标识符和关键字 2 2Java的基本数据类型 2 3Java数组 习题 第3章运算符 表达式和语句 3 1运算符与表达式 3 2语句概述 3 3控制语句 3 4 循环语句 3 5break和continue语句 习题 第4章类 对象和接口 4 1编程语言的几个发展阶段 4 1 1机器语言 4 1 2过程语言 4 1 3面向对象编程 4 2类 4 2 1类声明 4 2 2类体 4 2 3成员变量和局部变量 4 2 4方法 4 2 5方法重载 4 2 6构造方法 4 2 7类方法和实例方法 4 2 8值得注意的问题 4 3对象 4 3 1创建对象 4 3 2使用对象 4 3 3于象的引用和实体 4 3 4参数传值 4 4static关键字 4 4 1实例变量和类变量的区别 4 4 2实例方法和类方法的区别 4 5this关键字 4 6包 4 6 1包语句 4 6 2import语句 4 6 3将类打包 4 7访问权限 4 7 1私有变量和私有方法 4 7 2共有变量和共有方法 4 7 3友好变量和友好方法 4 7 4受保护的成员变量和方法 4 7 5public类与友好类 4 8类的继承 4 8 1子类 4 8 2子类的继承性 4 8 3成员变量的隐藏和方法的重写 4 8 4final关键字 4 9对象的上转型对象 4 10多态性 4 11abstract类和abstract方法 4 12super关键字 4 13接口 4 13 1接口的声明与使用 4 13 2理解接口 4 13 3接口回调 4 13 4接口做参数 4 14内部类 4 15匿名类 4 15 1和类有关的匿名类 4 15 2和接口有关的匿名类 4 16异常类 4 16 1try catch语句 4 16 2自定义异常类 4 17Class类 4 17 1获取类的有关信息 4 17 2使用Class实例化一个对象 4 18基本类型的类包装 4 18 1Double类和Float类 4 18 2Byte Integer Short 工 ong类 4 18 3Character类 4 19反编译和文档生成器 4 20JAR文件 4 20 1将应用程序压缩为JAR文件 4 20 2将类压缩成JAR文件 4 20 3更新 查看JAR文件 习题 第5章字符串 5 1字符串 5 2字符串的常用方法 5 3字符串与基本数据的相互转化 5 4对象的字符串表示 5 5StringTokenizer类 5 6字符串与字符 字节数组 5 7StringBuffer类 5 8正则表达式 习题 第6章时间 日期和数字 6 1Date类 6 2Calendar类 6 3Math类 6 4BigInteger类 习题 第7章AWT组件及事件处理 7 1Java窗口 7 1 1 Frame常用方法 7 1 2菜单条 菜单 菜单项 7 1 3窗口与屏幕 7 2文本框 7 2 1TextField类的主要方法 7 2 2文本框上的ActionEvent事件 7 3内部类实例做监视器 7 4按钮与标签 7 4 1标签组件 7 4 2按钮组件 7 5菜单项 7 6文本区 7 6 1TextArea类主要方法 7 6 2文本区上的TextEvent事件 7 7面板 7 7 1Panel类 7 7 2ScrollPane类 7 8布局 7 8 1FlowLayout布局 7 8 2BorderLayout布局 7 8 3CardLayout布局 7 8 4GridLayout布局 7 8 5BoxLayout布局 7 8 6null布局 7 9画布 7 10选择型组件 7 10 1选择框 7 10 2下拉列表 7 10 3滚动列表 7 11Component类的常用方法 7 12窗口事件 7 13鼠标事件 7 14焦点事件 7 15键盘事件 7 16使用剪贴板 7 17打印 7 18综合实例 习题 第8章建立对话框 8 1Dialog类 8 2文件对话框 8 3消息对话框 8 4确认对话框 8 5颜色对话框 习题 第9章Java多线程机制 9 1Java中的线程 9 2Thread类的子类创建线程 9 3使用Runnable接口 9 4线程的常用方法 9 5GUI线程 9 6线程同步 9 7在同步方法中使用wait notif 和nodf3 All 方法 9 8挂起 恢复和终止线程 9 9计时器线程Timer 9 10线程联合 9 11守护线程 习题 第10章输入输出流 10 1File类 10 2FileInputStream类 10 3FileOutputStream类 10 4FileReader类和FileWriter类 10 5使用文件对话框打开和保存文件 10 6RandornAccessFile类 10 7数据流 10 8数组流 10 9对象流 10 10序列化与对象克隆 10 11文件锁FileLock 10 12Process类中的流 10 13带进度条的输入流 习题 第11章Java网络的基本知识 11 1使用URL 11 2读取URL中的资源 11 3显示URL资源中的HTML文件 11 4处理超链接 11 5InetAdress类 11 6套接字 11 7网络中的数据压缩与传输 11 8UDP数据报 11 9广播数据报 习题 第12章JavaApplet基础 12 1JavaApplet的运行原理 12 2网页向JavaApplet传值 12 3JavaApplet扣使用URL 12 4JavaApplet中建立新线程 12 5JavaApplet中使用套接字 习题 第13章常见数据结构的Java实现 13 1链表 13 2栈 13 3树集 13 4树映射 13 5散列集 13 6散列表 13 7向量 习题 第14章图形与图像 14 1绘制文本 14 2绘制基本图形 14 3建立字体 14 4清除 14 5Java2D 14 6图形的布尔运算 14 7绘制钟表 14 8绘制图像 14 9制作JPG图像 14 10XOR绘图模式 14 11打印图形 图像 习题 第15章Java数据库连接 JDBC 15 1创建数据源 15 2JDBC ODBC桥接器 l5 3顺序查询 15 4可滚动结果集 15 5排序查询 15 6模糊查询 15 7随机查询 15 8更新 添加 删除记录 l5 9预处理语句 15 10数据库访问中的套接字技术 习题 第16章Java与多媒体 16 1在小程序中播放音频 16 2在另一个线程中创建音频对象 16 3在应用程序中播放音频 16 4Java媒体框架 JMF 习题 第17章JavaSwing基础 17 1几个重要的类 17 2中间容器 17 3各种组件 习题">Java2实用教程 rar 第1章Java入门 1 1Java的诞生 1 2Java的特点 1 3安装Sun公司的SDK 1 4一个Java程序的开发过程 1 5一个简单的Java应用程序的开发过程 1 6一个简单的Java小应用程序 1 7什么是JSP 习题 第2章标识符 关键字和数据类型 2 1标识 [更多]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值