javase方法和数组

1 方法的概述和格式说明

方法就是用来解决一类问题代码的有序组合,为了解决代码重复编写的问题,可以将重复的代码提取出来放在一个{}中,并为这段代码起个名字。这样每次在调用该功能时,只需通过这个名字来调用代码就可以了。
方法的定义:
修饰符 返回值类型 方法名(参数类型 参数名,){
函数体;
return 返回值;
}
方法头:是指方法的修饰符
返回值类型:return;
方法名: 定义方法的名字,必须使用合法的标识符;
方法的参数:当参数被调用时,传递值给参数;

方法的优点

  • 是程序变得代码量减少
  • 提高程序的维护
  • 提高开发效率
  • 提高代码的复用性
    ##方法的调用

1 有返回值的调用

  • 单独调用,没有意义

  • 输出调用,有意义,但是不够好,因为我们不一定非要把结果输出

  • 赋值调用,推荐方式

    例题:

//返回较大的数值
public static int max(int a,int b){
		if(a>b){
			return a;
		}else{
			return b;
		}
		return a>b?a:b;
	}

警告:对带返回值而言,return 语句是必须的。

2 无返回值的调用

  • 单独
  • 输出调用(错误)
  • 赋值调用(错误)
    例题 1:
//打印星星 无返回值的使用
public static void show(int row,int col){
		for(int i=1;i<=row;i++){
			for(int j=1;j<=col;j++){
				System.out.print("*");
			}
			System.out.println();
		}
	}

例题 2:

//打印乘法口诀表
public static void table(int n){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=i;j++){
				System.out.print(i+"*"+j+"="+i*j+"\t");
			}
			System.out.println();

方法的注意事项

  • 方法不调用不执行
  • 方法与方法是平级关系,不能嵌套定义
  • 方法定义的时候参数之间用逗号隔开
  • 方法调用的时候不用在传递数据类型
  • 如果方法有明确的返回值,一定要return带回一个值

方法的重载

方法重载概述:

  • 在用一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同。
    方法重载特点:
  • 与返回值无关,只看方法名和参数列表
  • 在调用时,虚拟机通过参数列表的不同来区分同名方法
    例题:

//方法的重载
	public static int add(int a,int b,int c){
		return a+b+c;
	}
	public static double add(int a,double b,int c){
		return a+b+c;
	}
	public static double add(double m,double n){
		return a+b;
	}
	public static double add(double a,double b){
		return a+b;
	}
	public static char add(char a,char b){
		return (char)(a+b);
	}
	public static int add(int a,int b){
		return a+b;
	}

数组

数组是用来存储数据的集合,但是,通常我们会发现把数组看作一个存储具有相同类型的变量集合会更有用。

一维数组

为了在程序中使用数组,必须声明一个引用数组的变量,并指明数组的元索类型。创建不同于基本数据类型变量的声明,声明一个数组变量时并不在内存中给数组分配任何空间。它只是创建一个对数组的引用的存储位置。如果变量不包含对数组的引用,那么这个变量的值为 null。除非数组已经被创建,否则不能给它分配任何元素。

数组的定义格式

数据类型[ ] 数组名(推荐使用);
数据类型 数组名 [ ];

数组的大小和默认值

当给数组分配空间时,必须指定该数组能够存储的元素个数,从而确定数组大小。
创建数组之后就不能再修改它的大小。可以使用 变量名.length 得到数组的大小。
当创建数组后,它的元素被賦予默认值,数值型基本数据类型的默认值为 0, char 型的默认值为 AuOOOO’,boolean 型的默认值为 false。

数组的初始化

数组初始化

  • Java中的数组必须先初始化,然后才能使用
  • 所谓初始化,就是为数组中的数组元素分配内存空间,并为每个数组元素赋值数组的初始化方式
  • 动态初始化:初始化时只指定数组长度,由系统为数组分配初
  • 静态初始化:初始化时指定每个数组元素的数十只,由系统决定数组长度
    例题 1
//遍历数组
public static void Bian(int[ ] args){
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i]);
		}
}

例题 2

//二分查找
class ArrayDemo{	
	public static void main(String[] args){
		int[] arr=new int[100];
		for(int i=0;i<arr.length;i++){
			arr[i]=i;
		}
		int min=0;
		int max=arr.length-1;
		int mid=(min+max)/2;
		int key=100-1;
		while(arr[mid]!=key){
			if(arr[mid]>key){
				max=mid-1;
			}
			if(arr[mid]<key){
				min=mid+1;
			}
			mid=(min+max)/2;
			if(min>max){
				mid=-1;
				break;
			}
		}
		System.out.println(mid);

例题 3

import java.util.Arrays;//数组工具类
class SortDemo{
	public static void main(String[] args){
		//选择排序
		selectSort();

		//冒泡排序
		bubbleSort();

		//插入排序
		insertSort();
	}
	public static void insertSort(){
		int[] arr=new int[10000];
		for(int i=0;i<arr.length;i++){
			arr[i]=(int)(Math.random()*5);
		}
		long start=System.currentTimeMillis();
		for(int i=1;i<arr.length;i++){
			int e=arr[i];
			int j;
			for(j=i;j>0&&arr[j-1]>e;j--){
				arr[j]=arr[j-1];
			}
			arr[j]=e;
		}
		long end=System.currentTimeMillis();
		System.out.println("插入排序time="+(end-start));
	}
	public static void bubbleSort(){
		int[] arr=new int[10000];
		for(int i=0;i<arr.length;i++){
			arr[i]=(int)(Math.random()*5);
		}
		long start=System.currentTimeMillis();
		for(int i=0;i<arr.length-1;i++){
			for(int j=0;j<arr.length-1-i;j++){
				if(arr[j]>arr[j+1]){
					int temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			}
		}
		long end=System.currentTimeMillis();
		System.out.println("冒泡排序time="+(end-start));
	}
	public static void selectSort(){
		int[] arr=new int[10000];
		for(int i=0;i<arr.length;i++){
			arr[i]=(int)(Math.random()*5);
		}
		long start=System.currentTimeMillis();
		for(int i=0;i<arr.length-1;i++){
			for(int j=i+1;j<arr.length;j++){
				if(arr[i]>arr[j]){
					int temp=arr[i];
					arr[i]=arr[j];
					arr[j]=temp;
				}
			}
		}
		long end=System.currentTimeMillis();
		System.out.println("选择排序time="+(end-start));
	}
}

二维数组

二维数组本质上就是一堆数组;

二维数组的格式

数据类型[][]数组名 :

数据类型数组名[][]; // 允许这种方式 ,但并不推荐使用它
例题

//找出整行整列或对角线相同的并打印
import java.util.Scanner;
class Demo4_25{
	public static void mian(String[] args){
		Scanner scanner=new Scanner(System.in);
		int size=scanner.nextInt();
		int[][] m=new int[size][size];
			for (int i=0;i<m.length;i++){
				for (int j=0;j<m[i].length;j++){
					m[i][j]=(int)(Math.random()*2);
					System.out.print(m[i][j]+" ");
				}
				System.out.println();
			}
			findRow(m);
			findCol(m);
			//findDiagonal(m);
			//findSubDiagonal(m);
	}
	public static void findRow(int [][] m){
		for (int i=0;i<m.length;i++){
			boolean flag=true;
			for (int j=1;j<m[i].length;j++){
				if (m[i][0]!=m[i][j]){
					flag=false;
					break;
				}
			}
			if (flag){
				String number=m[i][0]==0?"0":"1";
				System.out.println("All"+number+"in row"+(i+1));
			}
		}

	}
	public static void findCol(int [][] m){
		for (int j=0;j<m.length;j++){
			boolean flag=true;
			for (int i=1;i<m.length;j++){
				if (m[i][0]!=m[i][j]){
					flag=false;
					break;
				}	
			}
			if (flag){

				String number=m[0][j]==0?"0":"1";
				System.out.println("All"+number+"in col"=(j+1));
			}
		
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
未来社区的建设背景和需求分析指出,随着智能经济、大数据、人工智能、物联网、区块链、云计算等技术的发展,社区服务正朝着数字化、智能化转型。社区服务渠道由分散向统一融合转变,服务内容由通用庞杂向个性化、服务导向转变。未来社区将构建数字化生态,实现数据在线、组织在线、服务在线、产品智能和决策智能,赋能企业创新,同时注重人才培养和科研平台建设。 规划设计方面,未来社区将基于居民需求,打造以服务为中心的社区管理模式。通过统一的服务平台和应用,实现服务内容的整合和优化,提供灵活多样的服务方式,如推送式、订阅式、热点式等。社区将构建数据与应用的良性循环,提高服务效率,同时注重生态优美、绿色低碳、社会和谐,以实现幸福民生和产业发展。 建设运营上,未来社区强调科学规划、以人为本,创新引领、重点突破,统筹推进、整体提升。通过实施院落+社团自治工程,转变政府职能,深化社区自治法制化、信息化,解决社区治理中的重点问题。目标是培养有活力的社会组织,提高社区居民参与度和满意度,实现社区治理服务的制度机制创新。 未来社区的数字化解决方案包括信息发布系统、服务系统和管理系统。信息发布系统涵盖公共服务类和社会化服务类信息,提供政策宣传、家政服务、健康医疗咨询等功能。服务系统功能需求包括办事指南、公共服务、社区工作参与互动等,旨在提高社区服务能力。管理系统功能需求则涉及院落管理、社团管理、社工队伍管理等,以实现社区治理的现代化。 最后,未来社区建设注重整合政府、社会组织、企业等多方资源,以提高社区服务的效率和质量。通过建立社区管理服务综合信息平台,提供社区公共服务、社区社会组织管理服务和社区便民服务,实现管理精简、高效、透明,服务快速、便捷。同时,通过培育和发展社区协会、社团等组织,激发社会化组织活力,为居民提供综合性的咨询和服务,促进社区的和谐发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值