java基础笔记(3)遍历数组,冒泡排序,二分查找,sort排序,顺序查找,数组创建,可变参数,方法

1.遍历数组
数组类型一旦确定,则只能存储该类型或者是可以自动类型转换成该类型的数据
2.冒泡排序

int[] arr = {6,13,11,9,18};
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;					
				}
			}
		}
		for (int i : arr) {
			System.out.println(i);
		}

3.二分查找
前提条件:数组是有顺序的

int[] arr2= {1,2,5,7,9};
		int index  = Arrays.binarySearch(arr2, 9);
		System.out.println(index);	
		int index2 = Arrays.binarySearch(arr2, 9);
		System.out.println(index2);
	}
	public static int binarySerach(int[] arr,int key) {
		//最小值
		int minIndex = 0;
		int maxIndex = arr.length-1;
		while(minIndex<=maxIndex) {
			int middleIndex = (minIndex+maxIndex)/2;
			if(key>arr[middleIndex]) {
				maxIndex = middleIndex+1;
			}else if (key<arr[middleIndex]) {
				maxIndex = middleIndex-1;
			}else {
				return middleIndex;
			}
		}
		return -1;	
	}

4.sort
sort函数 进行排序 底层利用的是快速排序

int[] arr= new int[] {4,2,7,6,9};
		Arrays.sort(arr);

Arrays.toString
将数组中元素 拼接成一个字符串 用来展示数组中元素内容

		String str = Arrays.toString(arr);
		System.out.println(str);	
		System.out.println(Arrays.toString(arr));

5.顺序查找

boolean b =false;
		for (int i = 0; i < arr.length; i++) {
			if(arr[i]==5) {
				b=true;
			}
		}
		if(b) {
			System.out.println("找到了");
		}else {
			System.out.println("没找到");
		}

6.创建数组
更加推荐第一种
int[][] arr;
int[] arr2[];
int arr3[][];
数组在声明的时候就必须确定长度,要先初始化,没有初始化就调用会造成空指针异常

public class Test6 {
	public static void main(String[] args) {
		//存储小明 小红 小兰 小绿 语文 英语 数学 物理
				//控制台输入,计算每个同学的总成绩
				int[][] stus = new int[4][4];
				Scanner sc = new Scanner(System.in);
				//外层循环控制一维数组的个数
				for (int i = 0; i < stus.length; i++) {
					for (int j = 0; j < stus[i].length; j++) {
						System.out.println("请输入第"+(i+1)+"个同学的第"+(j+1)+"个成绩");
						stus[i][j] =sc.nextInt();
					}
				}
				//总成绩
				for (int i = 0; i < stus.length; i++) {
					int sum = 0;
					for (int j = 0; j < stus[i].length; j++) {
						sum+=stus[i][j];
					}
					System.out.println("第"+(i+1)+"个同学的总成绩:"+sum);
				}
	}
}

在这里插入图片描述
7.可变参数
可变参数传值的个数 0~n,可变参数实质上是一个可变长度数组,自己重新定义一个新的更长的数组,把原来的数组存过来,一个方法至多只能有一个可变参数 ,并且可变参数必须放在最后一个位置

public class Test7 {
	public static void main(String[] args) {
		a("aa",2,"a","b","d","f");
		b("aa","b","d");
	}
	public static void a(String name,int age,String...stu) {
		System.out.println(name+" "+age);
		for (int i = 0; i < stu.length; i++) {
			System.out.println(stu[i]);
		}		
	}
	public static void b(String name,String...sex) {		
	}
}

8.方法
定义方法的优点
减少重复代码,提高代码的复用性
提高阅读性
提高代码的可维护性

public class Test8 {
	public static void main(String[] args) {
		print99();
		System.out.println();
		print99();
	}
	//写一个方法作用打印99乘法表
	public static void print99() {
		for (int i = 1; i <=9; i++) {
			for (int j = 1; j <=i; j++) {				System.out.print(j+"*"+i+"="+j*i+"\t");
			}
			System.out.println();
		}
	}
}

当声明的方法内部需要变化的值则可以定义参数,由调用者给传递至形式参数–>形参
方法内部能产生参数
要将参数给调用者
返回 返回值
要修改三个地方
1.void要替换成要返回的类型
2.通过return将返回值返回
3.通过变量接收返回结果
要求必须执行一个到一个return才可以,否则编译方法报错
结束方法 在方法的返回值是void的时候通过return结束方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值