数组~~~

我觉得我是最不愿意接触数组的人,因为对其很不了解,与其这样说,不如说是不会用。但是,有些

东西就是这么重要,就如同数组。编程时离不开数组的,既然如此,那么我们就只有把它变成我们所

擅长的东西了。
有些人会很纳闷,数组为什么会这么重要呢?现在让我来举个例子。请输入以下数据
4 //表示有四组数据
1.2 1.3 //令他们分别为a和b,函数f(int a,int b)=a-b,要怎么实现这函数呢?
1.4 1.5
1.3 1.6
1.4 1.7

现在的我是不知道具体程序的,但是如何去写这里我们就可以思考一下了。
很明显,这是两种不同类型的数据,所以,我们到底要怎么解决呢?对的,数组,而且一维数组不足以
实现。至少现在知道数组很伟大了,现在就来看看数组有关的知识。

一.如何创建一维数组(创建数组的方法)

1. 数组类型 [] 数组名=new 数组类型[数组长度];

这里我们需要知道和注意一个问题:在java中数组可以作为一个实例,所以可以用new关键字来创

建,并且数组长度是不可以忽略的,
也就是说这样的形式可以有:int [] array=new int[10];
这样的形式不可以有: int [] array=new int[i];

2.数组类型[] 数组名={};(大括号里可以直接赋值)

int []array={1,2,2,3};
String [] array={"qw","ww","fg"};

3.当然,也可以这样子

数组类型 [] 数组名 ;
数组名={};

数组类型 [] 数组名 ;
数组名= new 数组类型[长度];

二.如何创建二维数组
1. 数组类型 [] []数组名=new 数组类型[行下标][列下标];

int [][]array=new int[3][4];

2. 数组类型 [] []数组名={{},{},{}}

找一个比较熟悉的数组:
String[][] array1 = { { "新建", "从扫面议或照相机" },

{"撤销","重复"}
{"工具箱","颜料盒","状态栏","文字工具栏","缩放","查看位图"},
{"翻转/旋转","拉伸/扭曲","反色","属性","不透明处理"},
{"编辑颜色"},
{"帮助主图","关于画图"}};
3同上3

4.还可以这么来定义:

int[][]array=new int[3][];
array[0]=new int[4];
array[0]=new int[4];
array[0]=new int[4];//这就是一个矩阵了,但是要注意的是java中的数组不一定是一个矩阵,所

以,还有这样的形式


int[][]array=new int[3][];
array[0]=new int[4];
array[0]=new int[3];
array[0]=new int[2];


三.数组在内存中存储的是数组元素的首地址。根据首地址我们就可以访问数组中的元素,这里的首

地址我可不可以理解成是下标呢?数组是什么样的存储结果:是一段连续的存储空间,是线性的的结

构,那么数组有哪些方法和属性呢?数组虽然可以作为实例化的对象,但是属于其本身的属性就只有
数组名.length,是的,只有数组长度,我们可以回想一下自己所用过的数组会发现确实是这样的吧
至于方法,就没有了(不包括自己继承来的),那么既然数组可以作为实例化的对象,那么就可以进行

一番动作了!!比如,
jbu.add(array[i]).


四.如何给数组赋值呢?这是一个关键的问题

我们知道数组在内存中存储的是数组元素的首地址,如何表示数组中具体某一个的值,只要有下标就

可以了:

数组名[下标]=值;
array[0]=5
数组名[行下标][列下标]=值;
array2[0][0]=5;
除了这样以外,肯定还有很多可以赋值的方法
例如:int[] array1={1,1,2};
int[] array2=array1.clone();就是克隆了一个和array1完全相同的数组
还有:
而我们最开始举得例子,就是在输入的时候给数组赋值了。不过,总的来说可定时可以回归

到上边的赋值方法的,归根结底就是这么赋值的。

五.如何访问一个数组

数据类型名 变量名=数组名[下标];
数据类型名 变量名=数组名[行下标][列下标];
int i=array[0];//访问第一个元素
int j=array2[0][0];//访问第一个元素
除了这种简单的访问一个元素的,如果要访问所有的元素,那么就要用到遍历了

int[] array1={1,1,2};
for(int i=0;i<array1.length;i++){
System.out.println(array1[i]);
}
六.多维数组

多维数组在很多时候都会用到,比如菜单栏,最开始我们所举得例子,比如我们的通讯录。这些

都是需要多维数组来完成的。下面一段代码就是多维数组的创建

public int [][] createArray(int row ,int line){
int [][] arr2= new int[row][line] ;
Random ro = new Random();
for(int i=0;i<arr2.length;i++){
for(int j=0;j<arr2[i].length;j++){
arr2[i][j]=ro.nextInt(100)+101;
}
}
return arr2;
}
//这里需要注意几个问题,首先arr2.length,这不是整个数组的长度,而是一位数组的长度,就好

比二维数组是由这几个一位数组组成的,arr2[i].length当然就是第二维数组的长度了,数组真正的

长度就是二者的乘积。下面来展示一个三维数组:


public class LX {

public static void main(String[] args) {

int [][][] array=new int[3][4][5];
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
for(int k=0;k<array[i][j].length;k++){
array[i][j][k]=i+j+k;
System.out.print(array[i][j][k]);
}
}
}

}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值