java数组详解(包括数据的初始化、比较、排序、重要方法)
一维数组
声明方式:
[java]
type var[] 或 type[] var;
例子:int a[ ] , int[ ] a;
Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的个数]
例子:
int[] s ; s = new int[5] ;
或者也可以自己创建类
[java] view plaincopy
People p[ ]; p = new people[10];
代码:
[java]
public class Study {
// public static void main(String[] args) {
// int a[] = new int[5];
// People p[];
// p = new People[10];
// }
//
// class People {
//
// }
public static void main(String[] args) {
int[] a; www.zzzyk.com
a = new int[5];
for(int i=0; i < 5; i ++){
a[i] = i;
}
for(int i=0; i < 5; i ++){
System.out.println(a[i]);
}
}
}
初始化:
1.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;
2.静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
3.默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。
1.动态初始化示例代码
数组定义与为数组分配空间和赋值的操作分开进行;
[java]
public class Study {
public static void main(String[] args) {
int[] a = new int[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;
Date d[] = new Date[3];
d[0] = new Date(2008,4,5);
d[1] = new Date(2008,4,5);
d[2] = new Date(2008,4,5);
}
}
class Date {
int year, month,day;
public Date(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
}
2、静态代码示例
在定义数字的同时就为数组元素分配空间并赋值;
[java]
public class Study {
public static void main(String[] args) {
Date d[] = {new Date(2012, 12, 12),new Date(2012, 12, 12),new Date(2012, 12, 12)};
}
}
class Date {
int year, month,day;
public Date(int year, int month, int day) {
this.year = year;
this.month = month;
this.day = day;
}
}
3、默认初始化
数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。
[java]
public class Study {
public static void main(String args[]) {
int a[] = new int[5];
System.out.println("" + a[3]);
}
}
二维数组的定义
声明方式:
[java]
type arrayName[][];
例子:
[java]
int intArray[][];
如:
[java]
int a[][]={{2,3},{1,5},{3,4}};
定义了一个3×2的数组,并对每个元素赋值。
初始化:
1.动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;
2.静态初始化:在定义数字的同时就为数组元素分配空间并赋值;
3.默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。
二维数组初始化规则其实和一维数组一样,我就不多说了。写两个简单例子:
1、规则二维数组:
[java]
public class Study {
public static void main(String args[]) {
int a[][] = {{1, 2}, {3, 4},{5, 6}};
for(int i = 0; i<a.length; i++){
for(int j = 0; j<a[i].length; j++){
System.out.println(a[i][j]);
}
}
}
}
2、不规则二维数组:
[java]
public class Study {
public static void main(String args[]) {
int b[][] = {{1, 2}, {3, 4, 5},{5, 6, 7, 8}};
for(int i = 0; i<b.length; i++){
for(int j = 0; j<b[i].length; j++){
System.out.println(b[i][j]);
}
}
}
}
数组排序
JAVA中在运用数组进行排序功能时,一般有四种方法:快速排序法、冒泡法、选择排序法、插入排序法。
1、利用Arrays带有的排序方法快速排序
该排序算法是一个经过调优的快速排序法,改编自 Jon L. Bentley 和 M. Douglas McIlroy 合著的 Engineering a Sort Function", Software-Practice and Experience Vol. 23(11) P. 1249-1265 (November 1993)。此算法在许多数据集上提供 n*log(n) 性能,这导致其他快速排序会降低二次型性能。public static void sort(int[] a, int fromIndex, int toIndex)对指定 int 型数组的指定范围按数字升序进行排序。排序的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。
[java]
public class Study {