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

12-3java学习笔记

2014-12-03 09:57 351 查看
数组与方法的介绍

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

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: