Java编程基础——方法、数组

一、方法

1、方法的概念

方法声明的格式:

修饰符   返回值类型  方法名称(参数类型   参数名称1,参数类型   参数名称2,...){
     
     方法体
     
return 返回值;
}

修饰符:定义了该方法的访问类型。方法的修饰符比较多,一般为publicstatic两种类型
返回值类型 :用于限定方法返回值的数据类型。
方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:用于限定调用方法时 传入参数的数据类型。
参数名:是一个变量,用于接收调用方法时传入的数据。“参数类型 参数名称1,参数类型 参数名称2,…”被称为参数列表,用于描述方法被调用时需要接收的数据。参数的个数是可选的,方法可以不包含任何参数。
方法体:方法体包含具体的语句,定义该方法的功能。
返回值:被return语句返回的值,该值会返回给调用者。
例子

public class Example1{
  public static void main(String[] args){
    int area=getArea(4,5);//调用getArea方法
    System.out.println("矩形的面积为:"+area);
  }
  //下面定义方法getArea来求矩形面积,方法接收两个参数,长x和宽y
  public static int getArea(int x,int y){
    int temp=x*y;//使用变量temp记住运算结果
    return temp;//将变量temp返回
  }
}    

运算结果为:

矩形的面积为: 20

2、方法的重载

所谓方法重载,就是在一个程序中可以定义多个同名方法,但要求每个方法具有不同的参数类型和参数个数
一个例子来帮助理解

public class Example2{
  public static void main(String[] args){
    //下面调用方法
    int sum1=add(2,3);
    int sum2=add(2,3,4);
    double sum3=add(0.5,1.5);
    //打印
    System.out.println("sum1"+sum1);
    System.out.println("sum2"+sum2);
    System.out.println("sum3"+sum3);
  }
  //下面定义方法实现两个数相加
  public static int add(int x,int y){
    return x+y;
  }
  //下面定义方法实现三个数相加
   public static int add(int x,int y,int z){
    return x+y+z;
  }
  //下面定义方法实现两个小数相加
   public static double add(double x,double y,){
    return x+y;
  }
}    

运算结果为:

sum1=5
sum2=9
sum3=4

定义多个同名的add( ) 方法,但每个方法具有不同的参数类型和参数个数,实现了方法的重载。在main( ) 方法中调用add( ) 方法时,通过传入参数的不同可以确定调用哪个重载方法,如add(2,3)调用的是两个整数求和的方法。
注意,方法的重载和返回值类型无关
但必须满足两个条件:
第一,方法同名
第二、每个方法具有不同的参数类型和参数个数

二、数组

数组是指一组数据的集合,数组中的每个数据被称为元素。数组可以存放任何类型的数据,但同一个数组中存放的数据类型必须一致。数组一旦被创建,它的大小就是不可改变的。数组是在内存中存储相同数据类型的连续的空间
数组名代表的是连续空间的首地址,通过首地址可以依次访问数组所有元素。
元素在数组中的排序叫做下标从零开始。

1、定义

定义:

int []x=new int[N];int []x;
x=new int [];

上述语句定义了一个int类型数组,[ ]中的数字10表示数组的长度,即可以存放10个元素,相当于在内存中定义了10个int类型的变量,第一个变量的名称为x[0],第二个变量的名称为x[1],以此类推,第10个变量的名称为x[9],这些变量的初始值都是0
每个数组元素都有一个索引(也称角标),通过这个索引可以访问数组中的元素,例如要访问第1个元素,则可以通过x[0]的形式。
需要注意的是,数组的索引最小为0,最大为“数组的长度一1”,获取数组长度可以通过length属性,在程序中通过“数组名.length"即可获取数组长度

数组的初始化:

int[ ] arr={1,2,3,4,5,6,7};
int [ ]  arr1=new int[ ]{1,2,3,4,5,6,7};

new int[ ]的[ ]一定不能放内存大小

2、常见操作

数组遍历

public class Example3{
  public static void main(String[] args){
    int[ ] arr=new int[]={1,2,3,4,5,6,7};//定义数组
    //下面通过for循环遍历数组元素
    for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
    }
  }
}         

数组最值

public class Example4{
  public static void main(String[] args){
    int[] arr={4,5,2,8,1,5,3,9};
    int max=arr[0]//定义变量,保存数组中0索引的元素
    //遍历数组,取出每个元素
    for (int a=0;a<arr.length;a++){
    //遍历到的元素和变量max比较
       if (arr[a]>max){
          max=arr[a];
       }
     }
    System.out.println("max="+max);
  }
}         

数组排序

public class Example5{
  public static void main(String[] args){
    int[] arr={4,5,2,8,1,5,3,9};
    //下面实现冒泡排序
    for (int i = 0; i < arr.length-1; i++) {
       for(int j = 0;j < arr.length-x-1;j++) {
	     if(arr[j]>arr[j+1]) {// 比较相邻的元素
     	    int temp = arr[j];//左边元素大于右边元素,则交换位
            arr[j] = arr[j+1];
            arr[j+1] = temp;
	     }
      }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);// 这里输出排序完成后数组的顺序
    }
  }
}         

3、Arrays工具类

Arrays是一个专门用于操作数组的工具类,该类位于java.util包中。Arrays工具类提供了大量的静态方法。

对指定的int数列按数组升序进行排序

static void sort(int[] a)

使用二分法搜索指定数列,以获得指定对象

static int binarySearch(Object[] a,Object key)

将指定数列的指定范围复制到一个新数列

static int[] copyOfRange(int[] original,int from,int to)

将指定的Object引用分配给指定的Object数组的每个元素

static void fill(Object[] a,Object val)

返回指定数组内容的字符串表示形式

static String toString(int[] arr)

判断数组是否相等

static boolean equals(int[] arr1, int[] arr2);

应用举例:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Example6 {
	public static void main(String[] args) {
		//将数组转换为字符串
		int[] intArray1= {1,2,3,4};
		String string = Arrays.toString(intArray1);
		System.out.println(string);
		
		//对数组排序
		int[] intArray2= {5,2,4,7};
		Arrays.sort(intArray2);
		System.out.println(Arrays.toString(intArray2));
		
		//判断数组是否相等
		int[] intArray3= {7,5,2,7};
		int[] intArray4= {5,9,2,7};
		boolean isEquals = Arrays.equals(intArray3, intArray4);
		System.out.println(isEquals);
		
		//利用二分法查找元素
		int[] intArray5= {5,9,2,7};
		Arrays.sort(intArray5);
		int index = Arrays.binarySearch(intArray5, 9);
		System.out.println("index="+index);
		
		//将指定数列的指定范围复制到一个新数列
		int[] intArray6= {0,1,2,3,4,5,6};
		int[] intArray7 = Arrays.copyOfRange(intArray6, 0, 5);
		System.out.println(Arrays.toString(intArray7));		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值