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]);
}
}
}

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