基础知识(二)之数组解析
来源:互联网 发布:python 傅里叶变换 编辑:程序博客网 时间:2024/06/09 21:05
-------android培训、java培训、期待与您交流! ----------
数组(Array)
什么是数组,相同类型数据的集合就叫做数组。数组是一个对象。那么如何定义一个数组呢?
第一种形式:
type[]变量名 =new type[数组中元素的个数(长度)];
例如我们可以按照下列方式定义长度为10的数组:
int[] a=new int[10];或者int a[]=new int[10];
例如看以下代码:
publicstaticvoid main(String[] args) {
int[] i =newint[4];
i[0]=0;
i[1]=1;
i[2]=2;
i[3]=3;
System.out.println(i[2]);
}
对于数组,我们要知道数组的索引是从0开始的,对于数组来说,最大的索引=数组的长度-1。
第二种形式:
type[] a={元素1,元素2,元素3………}
例如: publicstaticvoid main(String[] args) {
int[] i={1,2,3,4};
System.out.println(i[2]);}
第三种形式:type[] a=new type[]{元素1,元素2,元素3……}
错误写法:int[] i=newint[2]{1,2,3};
例如:
publicstaticvoid main(String[] args) {
int[] i=int[]{1,2,3,4};
System.out.println(i[2]);}
数组小练习:长度是100的数组,给每个数组赋上1-100。
第一种写法:
int[] a=newint[100];
for(int i=0;i<a.length;i++){
for(int j=0;j<100;j++){
a[i]=j+1;
System.out.println(a[i]);
}
}
第二种写法(更简便):
int[] a=newint[100];
for(int i=0;i<a.length;i++){
a[i]=i+1;
System.out.println(a[i]);
}
从以上练习中,我们看到一个length属性,记住在java中的每个数组都有一个名为length的属性,它表示数组的长度。length的属性是public,final,int的,数组长度一旦确定,就无法改变大小。
数组误区:数组内容的对比不能用==或者equals()方法。如:
int a[]={1,2,3,4};
int b[]={1,2,3,4};
System.out.println(a==b);//false
System.out.println(a.equals(b));//fasle
对于int[] a=new int[10],我们分析下,其中a是一个引用,它指向了生成的数组对象的首地址a[0],数组中的每个元素都是int类型,其中仅存放数据值本身
如图:
那么,我们对不是原生数据类型创建数组是什么情况?如下:
publicclassArrayTest {
publicstaticvoid main(String[] args) {
Person[]p=newPerson[3];//这里没有创建对象,存得只是引用,创建内存且为null
p[0]=new Person(10);//真正的创建对象
p[1]=new Person(20);
p[2]=new Person(30);
for(int i=0;i<p.length;i++){
System.out.println(p[i].age);//打印10,20,30
}
}
}
class Person{
intage;
public Person(int age) {
this.age=age;
}
}
以上代码如图所示:
二维数组
什么是二维数组呢?二维数组是一种平面的二维结构,本质上是数组的数组。二维数组的定义方式:
type[][]变量名=newtype[int数字1][int数字2];
数字1和数字2分别表示数组中的行与列;
小练习:我们对int[2][3]数组里面,每个元素都是以2的倍数进行赋值。
publicstaticvoid main(String[] args) {
int[][] a=newint[2][3];
int m=0;
for(inti=0;i<2;i++){
for(intj=0;j<3;j++){
m++;
a[i][j]=2*m;
System.out.println(a[i][j]);
}
}
}
那么我们怎么定义不整齐的数组呢?我们如何对这个数组进行定义,如图:
那么对于不整齐的数组我们定义如下:
publicstaticvoid main(String[] args) {
int a[][] =newint[3][];
a[0]=newint[2];
a[1]=newint[3];
a[2]=newint[1];
}
所以我们对二维数组有第二种定义方式:
type[][] a=new type[][]{{1,2,3…},{1,2,3…},{1,2,3…}….}
那么我们对以上定义的数组,我们怎么去取得每个元素的值呢?见如下代码.
publicstaticvoidmain(String[] args) {
int[][] a =newint[][]{ { 1,2, 3 }, { 4 },{ 5, 6, 7, 8 }};
for(int i=0;i<a.length;i++){
for(intj=0;j<a[i].length;j++){
System.out.print(a[i][j]+””);//为了好的显示果
}
}System.out.println();//换行,为了好的显示结果
}
三维数组
既然有二维数组那么我们也有三维数组,三维数组形式:
type[][][]变量名=new type[][][];
- 基础知识(二)之数组解析
- 进程之基础知识(二)
- 进程之基础知识(二)
- 计算机网络之基础知识(二)
- java基础知识(二)数组定义
- C#基础知识之数组
- Java基础知识之数组
- C语言基础知识之(二):分支
- Python学习之路二---(基础知识)
- JavaScript基础知识之Array类型(二)
- python学习之基础知识(二)
- [WebServices] 之二:基础知识
- Ethernet基础知识之二
- C#基础知识之二
- java基础知识之二
- 指针和数组实例解析(二)
- javaScript之数组(二)
- Java基础知识之数组操作
- 图算法--最小生成树
- freeeim源码一个个投篮的命中
- java Math.round()
- ios 地图位置开发详解
- 第六章:堆排序
- 基础知识(二)之数组解析
- Android 4.1 Audio系统变化说明
- 数学归纳法
- TCP/IP 第9章 IP选路
- 做师傅的感受
- 【汇编】初学者问题集及一些编程思路(转载)
- eclipse hadoop开发环境配置
- Jquery Mobile Popup控件 使用注意
- 程序员应具备的能力