JavaEE1910 day_06学习总结

数组的遍历(将数组中的元素一一输出出来):

1)首先自定义数组
int[] arr = {11 , 22 , 33 , 44 , 55}
2)数组中的属性:length
数组中的最大索引值:arr.length-1

class Demo{
	public static void main(String[] args){
		//自定义数组
		int[] arr = {11 , 22 , 33 , 44 , 55 }
		//将数组中的元素一一打印出,数组名称[角标]
		System.out.println(arr[ 0 ]) ;
		System.out.println(arr[ 1 ]) ;
		System.out.println(arr[ 2]) ;
		System.out.println(arr[ 3]) ;
		System.out.println(arr[ 4]) ;;
	}
	//上方法过于臃肿(代码重复度高)
	for(int x = 0 ; x<arr.length ; x++){
		System.out.println(arr[x]);
	}
	//使用方法进行数组遍历
	printArray(arr);
	System.out.println(" ");
	
	/*两个明确
		1.明确返回值类型:void
		2.明确参数个数以及类型:1个,int[] arr;
	public static voidprintArray(int[] arr){
		for(int x = 0;x<arr.length;x++){
			System.out.print(arr[x]);
		}
	}
}

数组元素逆序:

特点:
将0索引对应的元素和arr.length-1索引对应的元素进行互换
将1索引对应的元素和arr.length-1-1索引对应的元素进行互换

只要做到arr.length/2

class Demo{
	public static void main(String[] args){
		//自定义数组
		int[] arr = {77,32,43,54,65};
		System.out.println("逆序前");
		printArray(arr);
	}
	//借助中间变量
	public static void printArry(int[] arr){
		for(int strat = 0,end = arr.length-1;start<=end;start++,end--){
			int temp = arr[start];
			arr[start] = arr[end];
			arr[end] = temp;
	}
		//改进:
	public static void printArray(int[] arr){
		for(int y= 0;y<=arr.length/2;y++){
		int temp = arr[y];
		arr[y] = arr[arr.length-1-y];
		arr[arr.length-1-y]=temp;
	    }
	}
}

查询元素

查询元素在当前数组中的索引值

数组的基本查找:从头查到尾(数组元素无序)

class ArrayDemo5{
	public static void main(String[] args){
		//给定一个数组
		int[] arr = {330,250,888,25,15} ;
		
		//查询250这个元素在数组中第一次出现的索引,使用方法改进
		int index = getIndex(arr,250) ;
    //两个明确
	//明确返回值类型:int
	//明确参数类型:2个参数,当前数组,以及当前要查找的元素
	public static int getIndex(int[] arr,int value) {
		//遍历数组,获取数组中的每个元素
		for(int x = 0 ; x < arr.length ; x ++){
			//判断如果当前arr[x和value值相等,就返回当前x角标
			if(arr[x] ==value){
				return x ;
			}
		}
		
		//考虑到查不到情况,
		return -1 ;
	}  //(缺少return-1)报错:编译不通过:缺少返回语句 
	/*
		只要是判断,就存在flase的情况 ,如果用户输入了一个数据,这个数据在数组中不存在.
	*/
键盘录入对象类型不同的区别
Scanner类
	接收int类型  	nextInt();
	接收String类型  nextLine() ;
import java.util.Scanner ;
class ScannerDemo{
	public static void main(String[] args){
	
		//创建键盘录入对象
		Scanner sc = new Scanner(System.in) ;
		
		//输入两个int类型的数据,并且将值打印
		//int a = sc.nextInt() ;
		//int b = sc.nextInt();
		//System.out.println("a:"+a) ;
		//System.out.println("b:"+b) ;
		//System.out.println("---------------") ;
		
		输入两个String类型的数据,并且将值打印
		//String s1 = sc.nextLine() ;		" "
		//String s2 = sc.nextLine() ;
		//System.out.println("s1:"+s1) ;
		//System.out.println("s2:"+s2) ;
		
		//先录入一个int类型,再录入String类型
		
		int a = sc.nextInt() ;
		
		//在创建一个键盘录入对象
		Scanner sc2 = new Scanner(System.in) ;
		String b = sc2.nextLine();
		System.out.println("a:"+a) ;
		System.out.println("b:"+b) ;
	}
}	

二维数组

二位数组:
由多个一维数组组成的数组.

定义二维数组的格式:
		数据类型[][] 数组名称 ;
		数据类型[] 数组名称[] ;
初始化:
	动态初始化: 系统默认给定当前数组元素值...
	
	格式1:
		数据类型[][] 数组名称 = new 数据类型[m][n] ;
		
		举例:
			int[][] arr = new int[3][2] ;
			左边:
				int[][] :定义了一个int类型的二维数组
				arr:数组的名称	
			右边:
				new :在堆内存中开辟空间
				[3]:当前二维数组中有3个一维数组
				[2]:每一个维数组中有2个元素
		
		注意事项: 当前变量前面限定,是什么?一维数组,二维数组...
			int x,y ;
			int[] x,y;
			int[] x,y[] ;
			
			...
	静态初始化
	格式:
		数据类型[][] 数组名 = new 数据类型[][]{{元素…},{元素…},{元素…}}; 
			举例:
				int[] arr[] = new int[][]{{1,2,3},{4,5,6},{7,8,9}};
		
		简化版格式:
			数据类型[][] 数组名 = {{元素1,,,},{元素1,,,},{元素1,,,}} ;
				int[] arr[] = {{1,2,3},{4,5,6},{7,8,9}};

无论一维数组还是二维数组,定义数组的时候,不能动静结合
int[] arr = new int[3]{1,2,3} ; 错误的
数组中的最值的问题
return max ,min ; //错误的

冒泡排序

实现冒泡排序代码:
思路:
两个两个比较,大的值往后放,第一次比较完之后,最大值出现在最大索引处;依次这样比较,可以得到一个排好序的数组!


class BubbleSort{
	public static void main(String[] args){
		
		//自定义一个数组:
		int[] arr = {24,69,87,53,13} ;
		
		//排序前
		System.out.println("排序前: ") ;
		printArray(arr) ;
		for(int x = 0 ; x <arr.length-1 ; x ++){ //控制比较的次数
			for(int y = 0 ; y < arr.length-1-x; y++){
				//如果前面比后面元素大,往后移动
				if(arr[y]>arr[y+1]){
					int temp = arr[y] ;
					arr[y] = arr[y+1] ;
					arr[y+1] = temp ;
				}
			}	
		}
		biJiao(arr);
		//使用方法
		public static void biJiao(int[] arr){
		for(int x = 0 ; x <arr.length-1 ; x ++){ //控制比较的次数
			for(int y = 0 ; y < arr.length-1-x; y++){
				//如果前面比后面元素大,将较大元素往后移动
				if(arr[y]>arr[y+1]){
					int temp = arr[y] ;
					arr[y] = arr[y+1] ;
					arr[y+1] = temp ;
				}
			}	
		}
	}
}

面试题

看程序写结果(考点:Java中的基本数据类型和引用数据类型作为参数传递的区别)
class ArgsDemo{
	public static void main(String[] args){
		
		int a = 10;
		int b = 20; 
		System.out.println("a:"+a+",b:"+b); //10,20
		change(a,b); 
		System.out.println("a:"+a+",b:"+b);//a:10,b:20
		
		int[] arr = {1,2,3,4,5}; 
		change(arr); 
		System.out.println(arr[1]); //4
	}
	
	//执行change方法
	public static void change(int a,int b){//基本数据类型作为参数进行传递

		System.out.println("a:"+a+",b:"+b);//10,20
		a = b;
		b = a + b; 
		System.out.println("a:"+a+",b:"+b);//20,40
	}
	
	public static void change(int[] arr) { 
		for(int x=0; x<arr.length; x++) {
			if(arr[x]%2==0) {
				arr[x]*=2; 
			}	
		} 
	}

}

今日重点:
1)一维数组的应用
数组的基本遍历
数组的逆序
数组的基本查找 (考虑找不到情况下)
数组的最值问题
2)二维数组:知道二维数组的组成(有多个一维数组的元素)
3)冒泡排序
自己画图,代码实现(必须要掌握)
4)面试题(17年-18年 )
Java中的参数传递(基本数据类型,引用类型)
1)基本数据类型作为形参传递,形参的改变对实际参数没有影响
2)引用数据类型作为形参传递,形参的改变直接影响实际参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值