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结束方法

猜你喜欢

转载自blog.csdn.net/Echoxxxxx/article/details/112437097