java笔记-面向对象-重载、数组

1.函数的重载

概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
特点:与返回值类型无关,只看参数列表。

/*
** 函数重载
** 函数功能名称和功能相同,函数的参数和个数未知。
*/
class OverLoad{
	public static void main(String[] args){
		int x=5,y=3,z=7;
		/*
		** 打印重载函数运算;
		*/
		System.out.println("x=5,y=3,x+y="+add(x,y));
		System.out.println("x=5,y=3,z=7,x+y+z="+add(x,y,z));
		
		/*
		** 打印99乘法表;
		*/
		print99();
	}
	/*
	**函数重载与返回值类型无关。
	*/
	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;
	}
	
	/*
	**99乘法表;
	*/
	public static void print99(){
		/*
		for(int x=1;x<=9;x++){
			for(int y=1;y<=x;y++){							//x保持不变,y逐渐递增与x连乘;
				System.out.print(y+"*"+x+"="+y*x+"\t");		//不换行输出;
			}
			System.out.println();							//换行输出;	
		}
		*/
		
		/*
		** 为了提高代码可用性,上述方式可以采用如下进行:
		*/
		print99(9);
	}
	
	/*
	**99乘法表,一直乘到num数值;
	*/
	public static void print99(int num){
		for(int x=1;x<=num;x++){		//x<=num,一直连乘到num;
			for(int y=1;y<=x;y++){							//x保持不变,y逐渐递增与x连乘;
				System.out.print(y+"*"+x+"="+y*x+"\t");		//不换行输出;
			}
			System.out.println();							//换行输出;	
		}
	}
}

2.数组

概念:同一种数据类型的集合。

优点:可以自动给数组中的元素编号,便于操作。

格式:

元素类型[] 数组名称=new 元素类型[元素个数或数组长度];

int[] arr=new int[5];//arr为引用数据类型中的数组;

数组的静态初始化:

int[] arr=new int[]{1,2,3,4};

数组名称arr存放在栈内存中,int[5]存放在堆内存中;放在栈内存中的数据使用完毕会自动释放,局部变量都在栈内存中。

编译只检查语法错误;

取数组的最值和排序:

class maoPao{
	/*
	**获得最大值;
	*/
	/*
	public static int getMax(int[] arr){
		int max=arr[0];
		for(int x = 0; x<arr.length;x++){
			if(max<arr[x]){
				max=arr[x];
			}
		}
		return max;
	}
	public static void main(String[] args){
		int arr[]={1,2,3,6,3,2,6,9,10,-10};
		int max= getMax(arr);
		System.out.println("max="+max+".");
	}
	*/
	
	/*
	**选择排序
	*/
	/*
	public static void XuanZePaiXu(int[] arr){
		int temp;
		for(int x=0;x<arr.length-1;x++){
			for(int y=x+1;y<arr.length;y++){
				if(arr[x]<arr[y]){		//从小到大开始排序
					temp=arr[x];
					arr[x]=arr[y];
					arr[y]=temp;
				}
			}	
		}
	}
	public static void main(String[] args){
		int[] arr_1={3,6,3,2,1,8,82,23,21,32,23,64,73};
		XuanZePaiXu(arr_1);
		System.out.println("{");
		for(int x=0;x<arr_1.length;x++){
			if(x!=arr_1.length){
				System.out.print(arr_1[x],);	
			}
		}
		System.out.println("}");
	}
	*/
	
	/*
	**冒泡排序
	*/
	public void bubble(int[] arr){
		for(int x=0;x<arr.length;x++){
			for(int y=0;y<arr.length-x-1;y++){		//arr.length-x-1:-x是为了减少每一次比较的元素,-1是为了防止脚标越界。
				if(arr[y]>arr[y+1]){				//从小到大排序
					int temp=arr[y];
					arr[y]=arr[y+1];
					arr[y+1]=temp;
				}
			}
		}
	}
	public static void swap(int[] arr,int a,int b){
		int temp;
		temp=arr[a];
		arr[a]=arr[b];
		arr[b]=temp;
	}
}
查找数组中的元素(一般查找):

/*
** 查找数组中的元素
*/
class findIndex{
	public static void main(String[] args){
		int[] arr=new int[]{1,23,4,3,5};
		int temp;
		temp=findWord(arr,4);
		if(temp>=0){
			System.out.println("word position is "+temp+".");	
		}
		else{
			System.out.println("The array is null,or there have no this word!");
		}
		
	}
	/*
	** 获取元素第一次出现在数组中的位置;
	*/
	public static  int findWord(int[] arr,int key){
		if(arr!=null){							//先判断数组是否为空;
			for(int x=0;x<arr.length;x++){		//查找数组中的元素;
				if(arr[x]==key){
					return x;					//返回数组元素下标;
				}
			}
		}
		return -1;
	}
}

数组折半查找:

折半查找必须为有序数组
public class halfSearch{
	public static void main(String[] args){
		int[] arr=new int[]{1,3,6,12,18,23};
		int temp_1=getIndex_1(arr,32);	//第一种方式判断
		int temp_2=getIndex_1(arr,12);	//第二种方式判断
		System.out.println("getIndex_1 Index is "+temp_1+".");
		System.out.println("getIndex_2 Index is "+temp_2+".");
	}
	
	/*
	** 用数组下标进行判断;
	*/
	public static int getIndex_1(int[] arr,int key){
		int min,max,mid;
		min=0;
		max=arr.length-1;
		while(min<=max){		//用数组下标进行判断;
			mid=(min+max)>>1;	//中间下标赋值;
			if(key>arr[mid]){	
				min=mid+1;		//重置min下标为mid+1;
			}
			else if(key<arr[mid]){
				max=mid-1;		//重置max下标为mid-1;
			}
			else{
				return mid;		
			}
		}
		return -1;
	}
	
	/*
	**按照值判断;
	*/
	public static int getIndex_2(int[] arr,int key){
		int min,max,mid;
		min=0;
		max=arr.length-1;
		mid=(min+max)>>1;
		while(arr[mid]!=key){
			if(key<arr[mid]){
				max=mid-1;
			}
			else if(key>arr[mid]){
				min=mid+1;
			}
			if(min>max){
				return -1;			//数组下标异常则退出;
			}
			mid=(min+max)>>1;		//由于用值进行判断,数组下标要实时进行更新;
		}
		return mid;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会为你介绍Python中的数组。 在Python中,数组是一种存储元素的数据结构。与列表不同,数组是固定大小的,且元素类型必须相同。 要使用数组,需要先导入array模块。下面是一个创建数组的示例: ```python import array as arr # 创建一个整数类型的数组 a = arr.array('i', [1, 2, 3, 4, 5]) # 打印数组 print(a) ``` 在上面的示例中,我们使用了`array`模块创建了一个整数类型的数组,并初始化了它。要注意的是,第一个参数是一个字符,用于指定数组元素的类型。在本例中,我们使用了`i`,表示整数类型。 除了整数类型之外,还有其他类型可以使用,如`f`表示浮点数,`d`表示双精度浮点数,`b`表示布尔类型等。 在数组中,可以使用索引来访问元素,如下所示: ```python import array as arr # 创建一个整数类型的数组 a = arr.array('i', [1, 2, 3, 4, 5]) # 访问数组中的第一个元素 print(a[0]) # 修改数组中的第二个元素 a[1] = 6 # 打印数组 print(a) ``` 在上面的示例中,我们使用了索引`0`来访问数组中的第一个元素,使用索引`1`来修改数组中的第二个元素。 除了使用索引来访问和修改元素外,还可以使用循环来遍历数组中的所有元素,如下所示: ```python import array as arr # 创建一个整数类型的数组 a = arr.array('i', [1, 2, 3, 4, 5]) # 遍历数组中的所有元素 for i in a: print(i) ``` 在上面的示例中,我们使用了`for`循环来遍历数组中的所有元素,并打印每个元素的值。 这就是Python中数组的基本用法。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值