12-3java學習筆記

數組與方法的介紹
1.數組的聲明與使用過程


方法1:數據類型 數組名稱[]= new  數據類型[長度]
方法2:  數據類型 數組名稱[]=numll;
    數組名稱[]=new  數據類型[長度];
數組的使用分兩步進行:1.在棧中聲明數組的名稱(temp相當於指向堆的一個指針)。2.在堆中進行數據的開闢,通過關鍵字new進行
同時,不同的棧可以指向同一個堆內存。例如:int y[]=temp;則開闢了y數組,他們同生同滅。
2.數組使用中的注意問題:


不能超過數組的長度,下標從0開始進行;
使用數組名稱.length控制數組的長度
如果是二維數組,使用雙重循環:i=x.length,j=x[i].length
3.靜態數組


在聲明的時候直接給出值。int temp[]= {1,3,5};
4.數組的簡單實例:


 public class  ArrayTest2
{
public static void main(String[] args) 
{
int temp[] = null;
temp = new int[3];
for (int i=0;i
{
temp[i]=2*i+1;
System.out.println(temp[i]);
}
}
}
5.方法


在java中的方法即c語言中的函數,調用格式如下:
public static     返回值類型       方法名稱(參數值列表)


其中返回值的數據類型可以使java中的數值型和引用型或者是void不返回。
方法名稱的寫法:第一個單詞首字母小寫,之後的大寫。
如果是void,如果含有return則返回到方法的調用處。
5.1方法的重載


如果兩個方法,他們的名稱相同,參數類型和參數個數不同,則成爲這兩個方法重載。
實例:
//方法的重載
public class Methods4 {
public static void main(String[] args)
{
System.out.println(add(10,10));
System.out.println(add(10,10,10));
System.out.println(add(10f,10.1f));
}
public static int add(int i,int j)
{
int temp=0;
temp =i+j;
return temp;
}
public static int add(int i,int j,int k)
{
int temp=0;
temp =i+j+k;
return temp;
}
public static float add(float i,float j)
{
float temp=0;
temp =i+j;
return temp;
}
}
重載說明沒有必要進行方法的不同名稱的多次聲明。但是需要注意的是,
public static float add(float i,float j)     和      public static int add(int i,int j)  由於類型不同,不是重載。

System.out.println()由於該函數可以多次打印不同數值類型,可見它是重載例子。
5.2方法的遞歸


方法的遞歸屬於簡單的方法調用方法,不經常使用,因爲它容易造成內存溢出。
//本程序實現的是方法的遞歸調用
public class Method5 {
public static void main(String[] args)
{
System.out.println(digui(3));
}
public static int digui(int x)
{
int temp=0;
if (x<0)
{
return 0;
}
else //遞歸函數的調用
{
temp=digui(x-1)+x;
return temp;
}




}
}


5.3方法接收數組


這個屬於編程中經常使用的,注意的是,傳遞的是數組的地址,順便導致數組的內容發生變化。
//本程序實現的是方法接收數組
public class Method6 {
public static void main(String[] args)
{
int x[]={1,2,3,4,5,6};
print(x);
}
public static void print(int temp[])
{
for(int i=0; i<temp.length; ++i)
{
System.out.println("temp["+i+ "]"+ "="+ temp[i]);
}




}
}


//本程序實現的是方法返回數組
public class Method7 {
public static void main(String[] args)
{
int x[]= initial();
print(x);
}
public static void print(int temp[])
{
for(int i=0; i<temp.length; ++i)
{
System.out.println("temp["+i+ "]"+ "="+ temp[i]);
}




}
public static int[] initial()
{
int y[]={1,2,3,4,5,6};
return y;
}
}
6.兩個常用的方法


java.util.Arrays.sort(參數)對數組進行排序,參數是數組名
//本程序實現的是方法數組排序
public class Method8 {
public static void main(String[] args)
{
int x[]={1,2,3,4,5,6,44,23,52,12};
java.util.Arrays.sort(x);//數組排序方法
print(x);
}
public static void print(int temp[])
{
for(int i=0; i<temp.length; ++i)
{
System.out.println("temp["+i+ "]"+ "="+ temp[i]);
}




}
}
System.arraycopy(x,1,y,3,4);參數說明:源數組,位置,目標數組,目標位置,拷貝個數
//本程序實現的是方法數組拷貝
public class Method9 {
public static void main(String[] args)
{
int x[]={11,22,33,44,55,66,77,88,99};
int y[]={1,2,3,4,5,6,7,8,9};
System.arraycopy(x,1,y,3,4);
print(y);
}
public static void print(int temp[])
{
for(int i=0; i<temp.length; ++i)
{
System.out.println("temp["+i+ "]"+ "="+ temp[i]);
}




}
}

程序的反向使用,對程序進行反向排序



public class Arrayreverse {


public static void main(String[] args) 
{
int x[]={1,2,3,4,5,21,43,23,53,32};
java.util.Arrays.sort(x);//數組正向排序 
System.out.println("正向排序的結果");
print(x);
System.out.println("逆向排序的結果");
reverse(x);
print(x);

}
public static void print(int x[])//打印數組
{
for (int i=0;i<x.length ;++i )
{
System.out.println("x["+ i +"]"+ "=" +x[i]);
}
}
public static void reverse(int x[])//逆向排序
{
int temp=0;;
for (int i=0;i<(x.length/2)-1;++i )
{
temp=x[i];
x[i]=x[x.length-1-i];
x[x.length-1-i]=temp;
}
}


}
結果:

正向排序的結果
x[0]=1
x[1]=2
x[2]=3
x[3]=4
x[4]=5
x[5]=21
x[6]=23
x[7]=32
x[8]=43
x[9]=53
逆向排序的結果
x[0]=53
x[1]=43
x[2]=32
x[3]=23
x[4]=5
x[5]=21
x[6]=4
x[7]=3
x[8]=2
x[9]=1

使用冒泡排序

public class Test 
{
public static void main(String[] args)
{
int array1[]={1,6,4,2,8,7,9,3};
maopao(array1);
System.out.println("降序結果:");
print(array1);

}
public static void maopao(int x[])//冒泡排序法的工作方法,外層1:n-1;內層1:n-i
{
int temp=0;
int len=x.length;
for(int i=1; i<=len-1;++i)
{
for(int j=1;j<=len-i;++j)
{
if(x[j-1]<x[j])
{
temp=x[j-1];
x[j-1]=x[j];
x[j]=temp;
}
}
}
}
public static void print(int x[])
{
for(int k=0;k<x.length;++k)
{
System.out.println("x[" +k+ "]"+ "="+x[k]);
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章