1.声明数组

1.1声明一维数组

声明一维数组有下列两种格式:

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

数组的元素类型[ ]   数组名字

1.2声明二维数组

声明二维数组有下列两种格式:

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

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

例如:

float boy[ ];

char cat[ ][ ];

Java数组声明注意以下两点内容:

1.数组的元素类型可以是Java中的任何一种类型(包括自定义类型)。

2.Java中不允许在声明数组中的方括号内指定数组元素的个数。

2.创建数组

声明数组仅仅是给出了数组名字和元素的数据类型,想要真正使用数组还必须为它分配内存空间,即创建数组。

为数组分配内存空间的格式如下:

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

例如:

boy=new float[4];

数组变量boy中存放着这些内存单元的首地址,该地址被称为数组的引用,这样数组就可以通过索引操作这些内存单元。

声明数组和创建数组可以一起完成,例如:

float boy[ ] = new float[4];

二维数组与一维数组一样,声明之后要为它分配内存空间,例如:

int boy[ ][ ];

boy=new int[2][3];

int boy[ ][ ]=new int[2][3];

二维数组的创建需要注意以下几点:

1.一个二维数组是由若干个一维数组构成。

2.构成二维数组的一维数组不必有相同的长度,在创建二维数组时可以分别指定构成该二维数组的一维数组的长度。例如:

int a[ ][ ]=new int[3][ ];

a[0]=new int[6];

a[1]=new int[12];

a[2]=new int[8];

3.Java允许使用int型变量的值指定数组元素的个数。例如:

int size=30;

double number[ ]=new double[size];

3.Java数组的一些便捷操作

3.1 length的使用

数组的元素个数称为数组长度。对于一维数组,“数组名字.length”的值就是数组中元素的个数。对于二位数组,“数组名字.length”的值是它含有的一维数组的个数。

3.2 数组初始化

创建数组后,系统会给每一个数组元素一个默认的值,例如,float型是0.0。

在声明数组时同时也可以给数组的元素一个初始值,例如:

float boy[ ]={21.3f,23.89f,2.0f,778.98f};

也可以直接用若干个一维数组初始化一个二维数组,这些一维数组的长度不尽相同。

3.3 数组的引用

数组属于引用型变量,因此,两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。引用的指向就是堆空间的前地址。

3.4 数组的表示格式

Arrays.toString(a),可以将数组a中的元素以字符串形式输出,例如:

int [ ]a={1,2,3,4,5,6}

Arrays.toString(a)得到的字符串是:

[1,2,3,5,6]

3.5 数组中的常用方法

复制数组方法:arraycopy方法、copyOf方法、copyOfRange方法

排序方法:sort方法

二分查找方法:binarySearch

4.实验演示

代码:

public class Test {

	public static void main(String[] args) {
// TODO Auto-generated method stub
int num1[]; //声明一维数组 或int[] num1
int num2[][]; //声明二维数组 或者 int[][] num2 num1=new int[8]; //创建一维数组
num2=new int[3][]; //创建二维数组num2[0],num2[1],num2[2]还没对这三个数组分配空间暂时不能使用 for(int i=0;i<=5;++i) { //给一维数组赋值
num1[i]=i;
}
for(int i=0;i<3;++i) {
num2[i]=new int[6]; //给二维数组中的每一个数组分配空间
for(int j=0;j<6;++j) {
num2[i][j]=j*i; //赋值
}
} int num3[]=new int[6];
for(int i:num3) { //数组打印方式
System.out.print(i+" "); //创建后默认的数组值为0
}
System.out.print("\n"); int num4[][]= {{1},{1,2},{1,2,3}};//数组初始化,组成二维数组的一维数组长度可以不同
System.out.println(num4[0].length+" "+num4[1].length+" "+num4[2].length); //数组的使用
System.out.println(num1.length+" "+num2[0].length);//输出数组的空间长度 int a[]= {1,2,3},b[]= {1,2};
a=b; //数组引用的使用,引用的指向就是堆空间的前地址
for(int i:a) {
System.out.print(i+" ");
}
System.out.print("\n");
System.out.println(Arrays.toString(b)); //利用Arrays.toString可以将数组内的内容转换成字符串快速输出数组 //对于char类型数组输出
char ch[]= {'a','b','c','d'};
System.out.println(ch); //输出char数组内的内容
System.out.println(""+ch);//输出数组的引用 char ch1[]= {'a','b','c','d'};
char ch2[]= {'e','f','g'};
System.arraycopy(ch2,0,ch1,1,3);//用ch2数组中从下标为0的元素开始的三个元素,覆盖ch1数组中下标为1开始的三个元素
System.out.println(ch1); char ch3[]=new char[5];
ch3=Arrays.copyOf(ch2, 3);//将ch2数组中从下标为0开始的三个元素,赋值给数组ch3;
System.out.println(Arrays.toString(ch3)); char ch4[]=new char[5];
ch4=Arrays.copyOfRange(ch2,1,3);//将ch2数组中从下标为1开始的2个元素,赋值给数组ch4;
System.out.println(Arrays.toString(ch4)); int num5[]= {1,7,5,12,34,3,23};
Arrays.sort(num5);//将num5中的数字从小到大排序
System.out.println(Arrays.toString(num5)); int index;
index=Arrays.binarySearch(num5,5);//二分查找num5数组中5的位置
System.out.println(index); }
}

实验结果:

最新文章

  1. mybatis_常用标签
  2. kvm常用操作
  3. Ecmascript 6新特性
  4. ORACLE函数之日期时间运算函数
  5. 【Lotus Notes】邮件获取
  6. Xamarin控件使用之GridView
  7. Docker: Failed to get D-Bus connection: No connection to service
  8. MySQL explain执行计划优化
  9. php7 使用dom动态生成xml文档
  10. xml可视化编辑器
  11. python 的基础 学习 第三天 编码的初始
  12. PhpStorm 2017破解
  13. 『编程题全队』Beta 阶段冲刺博客三
  14. h5内容超出可以滑动展示的处理,iscroll的使用
  15. 软件工程第二次作业(JUnit的使用)
  16. docker重命名镜像
  17. SNMP学习笔记之SNMP的安装及Python的调用
  18. Ext学习系列(1)初识Ext
  19. 2.4 The Object Model -- Computed Properties and Aggregate Data with @each(计算的属性和使用@each聚合数据)
  20. LeetCode - Course Schedule 解题报告

热门文章

  1. let &amp; const 命令
  2. Codeforces Round #185 (Div. 1 + Div. 2)
  3. cdmc2016数据挖掘竞赛题目Android Malware Classification
  4. [转]vue router基本使用
  5. js cookie跨域
  6. 【23.26%】【codeforces 747D】Winter Is Coming
  7. vue项目上滑滚动加载更多&amp;下拉刷新
  8. js 中日期2013-08-30或2019-08-24 12:30:00 转换成时间戳,和2019-08-29T02:15:08.000+0000转化为2019-08-29T02:15:08
  9. git无密码push
  10. spring boot 多数据源加载原理