当前位置:编程学习 > JAVA >>

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 {  
   
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,