数组是具有相同数据类型的一组数据的集合,作为对象允许使用new关键字进行内存分配。首先先来熟悉一下一维数组的创建和使用。
数组元素类型 数组名字[];
数组元素类型[] 数组名字;
数组元素类型据定了数组的数据类型,它可以是java中任意的数据类型。
注:Java语言中
1.用new语句创建对象,这是最常见的创建对象的方法。2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。3.调用对象的clone()方法。4.运用反序列化手段,调用java.io.Object。
为数组分配内存空间的语法格式如下:
数组名字=new 数组元素的类型[数组元素的个数];
首先我们需要创建一个class:class Student{ String name; double score; String num; Student(String n,double s,String m){ name=n; s=score; num=m; } public static void printInfo()。
例如,arr=new int[5];也可以在
附:一旦使用new关键字为数组分配了内存空间,每个内存空间存储的内容就是数组元素的值,也就是数组元素就有了初始值,即使这个内存空间存储的内容是空,java创建对象数组的几种方式,这个空也是一个值null。也就是说不可能只分配内容空间而不赋初始值,即使自己在创建数组对象(分配内容空间)时没有指定初始值,系统也会自动为其分配。
理解了一维数组的
为数组分配内存之后,就要学习如何初始化数组了。一维数组的初始化形式有两种:
int arr[]=new int[]{1,2,3,4};
或 int arr[]={1,2,3,4};
二维数组的初始化方法: int myarr[][]={{12,2},{43,45}}; 注意,写成intmyarr[][]={12,2,43,45}是错误的。
在JAVA中创建数组有两种方式(1)静态创建 如String[] array = {"a", "b", "c"};(2)动态创建 如String[] array = new String[] {"a", "b", "c"};或String[] array = new String[3];(先确认元素个。
接下来,通过两段小的代码来解释如何使用一维数组和二维数组。
第一个例子是使用一维数组将1~12月各月的天数输出。代码如下:
第二个例子是使用二维数组将数组中的元素输出。代码如下:
Java 中创建数组的基本格式为 type[] varname = new type[size]{item1, item2, item3},其中 type 表示元素的类型, size 表示创建数组的大小,在指定后面所有元素的情况下,这个大小可以省略,后面花括号括起来的部分。
public class shuZu{public static void main(String args[]){ int arr[][]=new int[][]{{1},{2,3},{4,5,6}}; for(int i=0;i<arr.length;i++){ for(int j=0;j<arr[i].length;j++){ System.out.print(arr[i][j]); } System.out.println(); } } }
简单介绍了一下数组的基本内容,接下来讲解一下经典的数组冒泡排序算法。
冒泡排序原理:相邻的两位数做比较,1和2比较 2和3比较 3和4比较 4和5比较,这样依次比较,如果前面的数小于后面的,不做操作,如果前面的数大于后面的数则调换两个数字的位置,列1>2 则数字顺序为2 1(注:此时的1 2 3 4 5代表索引而不是数组),所以一层循环能挑出一个当前数组参与比较数字中的最大的数字,并将其排到数组的最末尾。但是一层循环根本不够用,只能挑选出一个最大数,数组中其他的数字还没有正确排序。这里遵循一个原理就是数组里面有length个数字,要进行length-1次循环。至于为什么要this.length-i,是因为第一次比较7个数字,第二个只要比较前6个就行了,第7个肯定是最大的了。这里要着重强调为什么会有2个for循环,为什么要用this.length-i。
下面用一个例子来做详细的说明:
var array = [8,7,9,2,3,5,6,1]; var temp = 0; function sort(arr){for (var i = 0; i < arr.length; i++){ //这里的i控制循环比较的次数 for (var j = 0; j < arr.length - i; j++){//这里的j控制参与比较的数字个数,因为每比较一次都会产生一个最大的数字,//那么下次比较的时候就没必要参与比较了,所以每比较一次都会减少一个数字if (arr[j] > arr[j + 1]){ temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; }}} } console.log(&39; + array);//输出[8,7,9,2,3,5,6,1] sort(array); console.log(&39; + array);//输出[1,2,3,5,6,7,8,9]
var array = [8,7,9,2,3,5,6,1]; var temp = 0; function sort(arr){for (var i = 0; i < arr.length; i++){ //这里的i控制循环比较的次数 for (var j = 0; j < arr.length - i; j++){//这里的j控制参与比较的数字个数,因为每比较一次都会产生一个最大的数字,//那么下次比较的时候就没必要参与比较了,所以每比较一次都会减少一个数字if (arr[j] > arr[j + 1]){ temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; }}} } console.log(&39; + array);//输出[8,7,9,2,3,5,6,1] sort(array); console.log(&39; + array);//输出[1,2,3,5,6,7,8,9]