您的位置:首页 > 编程语言 > Java开发

JAVA学习第三节---数组的学习 2011-7-28

2011-07-28 11:11 483 查看

一、数组的创建及使用,先声明,再用new运算符进行内存分配

声明一维数组有下列两种类型,语法如下: 数组元素类型 数组名字 [ ]; 数组元素类型[ ] 数组名字;
也可以声明的同时为数组分配内存,语法如下:数组元素类型 数组名字 =new 数组元素类型[数组元素的个数];
声明一维数组有下列两种类型,语法如下: 数组元素类型 数组名字 [ ][ ]; 数组元素类型[ ][ ] 数组名字;二维数组常用于表示表,表中的信息以行和列的形式组织 ,第一个下标代表元素所在行,第二个元素代表元素所在列。

初始化数组
例如 : int array[ ] = new int[1,2,3,4,5]; int array[ ][ ]={ {12,0},{45,10} };
我总是看不懂这个数组---- int a[][]={{1},{2,3},{4,5,6}}; 究竟是几行几列,于是写了一个程序验证了一下

public class Example{
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+"]"+"="+a[i][j]);
}
}
}
}
运行的结果是

这个二维组织比较特别,一共有三行,第一行的元素只有一个,第二行的元素有两个,第三行呢,有三个元素。

实例一:利用二维数组,将二维数组中的元素呈梯形输出;



public class Example{
public static void main(String args[]){
int i,j;
int a[][]=new int[][]{{1},{2,3},{4,5,6}};
for(i=0;i<a.length;i++){
for(j=0;j<a[i].length;j++){
System.out.print(a[i][j]);
}
System.out.println();
}
}
}
实例二:在遍历数组时,使用forreach语句可能会更简单。



public class Example{
public static void main(String args[]){
int a[][]={{4,3},{1,2}};
System.out.println("數組中的元素是: ");          //提示信息
for(int x[]:a){                                 //外层循环变量是一维数组
for(int e:x){                                 //循环遍历数组中的每一个元素
if(e==x.length){                      //判断变量是二维数组中的最后一个元素
System.out.print(e);
}
else{
System.out.print(e+"、");
}
}
}
}
}

二、Array类的一些方法
1、使用Array类的方法时,就必须引入包,import java.util.Arrays;
fill(int[ ] a,int value)-------可将指定int值分配给int类型数组的每个元素。 a是要进行元素替换的数组,value是要存储数组中所有元素的值。

import java.util.Arrays;
public class Example{
public static void main(String args[]){
int arr[]=new int[5];    //這個數組一共有5個元素
Arrays.fill(arr,0,3,8);   //用8去替換數組arr的第1個到第,3元素,
Arrays.fill(arr, 8);     //用8去替換數組的全部元素
for(int i=0;i<arr.length;i++){
System.out.println("數組的第"+i+"個元素是: "+arr[i]);
}
}
}

至于输出结果,自己运行一下。2、sort(object [ ])-----對數組進行排序。

import java.util.Arrays;
public class Example{
public static void main(String args[]){
int arr[]=new int[]{1,2,5,8,10};
Arrays.sort(arr);
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}



挺好的一個方法。
3、copyOf(Object [ ],int newlength)方法与copyOfRange(Object [ ],int formIndex,int tolnIndex )方法可实现对数组的复制。前者是复制数组至指定长度,后者则将指定数组的指定长度复制到一个新数组中。formIndex指定开始复制数组的索引位置,tolnIndex要复制范围的最后索引位置。

import java.util.Arrays;
class Example{
public static void main(String args[]){
int arr[]=new int[]{1,11,5,8,10};
//Arrays.sort(arr);
int newarr[]=Arrays.copyOf(arr,7);            //主要的用法在这里
for(int i=0;i<newarr.length;i++){
System.out.print(newarr[i]+" ");
}
System.out.println();
//Another sad=new Another();

}
}



复制数组最大的好处是可以扩大数组的长度,又不会失去一些数据。
4、binarySearch(Object [ ],key)与binarySearch(Object [ ] ,int formIndex,int tolnIndex,key)-----對數組進行查詢,而返回的结果是所要查询元素的索引值即下标,后者是指定了范围查询,formIndex是包括这个下标,tolnIndex不包括。

import java.util.Arrays;
class Example{
public static void main(String args[]){
int arr[]=new int[]{1,11,5,8,10};
Arrays.sort(arr);
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
Another sad=new Another();//哈哈,顺便学了一下类的调用,在类里面一定要有方法

}
}
class Another{
int arr1[]=new int[]{1,2,5,8,10};
int theIndex1=Arrays.binarySearch(arr1,2);//使用该方法时一定要先对数组进行排序
int theIndex2=Arrays.binarySearch(arr1,0,2,1);//在下标0~2之间搜索1,不包括下标2.
Another(){
System.out.println(theIndex1);
System.out.println(theIndex2);
}

}



对很多人来说,这真的是非常小的非常小的case,但是对我来说是大大的进步。因为我以前总是喜欢边看书边敲代码。现在都是我自己编的。
那数组这一节就基本学完了,期待下一节
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: