1、数组

为什么需要使用数组:在内存空间中连续分配内存的一种结构
一个变量默认情况下只能存储一个数据,数组可以存储若干个
创建数组的语法:
1:数据类型 [] 数组名 =new 数据类型[长度];
2:数据类型 [] 数组名=new 数据类型[]{a,b,c,d}
3:数据类型 [] 数组名={a,b,c,d};

向数组中保存元素的方式:第几个位置赋什么值
index索引**:从0开始的,一值到数组的长度-1
如果index的范围超了,就会引发运行异常:ArrayIndexOutOfBoundsException(数组下标越界)

数据类型:数组中元素的类型

获取数组中每个元素的值:通过index下标

修改数组中的值:通过index进行直接复制

数组的长度:通过数组名.length

二维数组:数组中的一个元素还是数组

数组是一种类型:象征着多的一种类型

操作数组的工具类:Arrays static修饰的方法,所以说可以通过类名直接使用

如何为数组排序(升序):自然排序 1 2 3 a b c
Arrays.sort():升序排序(数字 字母。。。进行排序 ASCII)
通过逆序输出,实现逆序的效果
Arrays.toString():将数组转换为String变量进行输出(鸡肋)
–print(在它打印变量的时候,默认会调用该变量的toString方法)
Arrays.fill():向数组中填充元素,直到填满为止
Arrays.copyOf():复制一个数组出来,指定新数组的长度
Arrays.binarySearch(); 查询一个数组中的元素所对应的索引位置(排序后的数组)

1:打擂计算方式
获取数组中最大的元素
1.1 在循环结构外声明一个代表最大值的变量,默认以数组中的第一个元素为最大值 int max=arrs[0];
1.2 通过循环遍历数组,获取后面的元素与max变量进行比较,如果后面的元素大于max变量,进行赋值交换
1.3 循环结束时,输出max变量即可!

  int ages[]={10,20,30,40,50,60};
	    int max=ages[0];//默认最大值
	    for (int i = 1; i < ages.length; i++) {
			if(ages[i]>max){
				//变量值的交换
				max=ages[i];
			}
		}

2:向数组中插入指定的元素,并维持元素的顺序(数组中元素的后移操作)

 		 int scores[]={59,68,77,86,95};
 	    System.out.print("插入前成绩为:");
 	    for (int i = 0; i < scores.length; i++) {
 			System.out.print(scores[i]+" ");
 		}
	 	    //向数组中插入一个成绩
	 	    System.out.println("请输入要插入的成绩:");
	 	    int score=in.nextInt();
	 	    
 	    //1:对原有的数组进行扩容
 	    scores=Arrays.copyOf(scores, scores.length+1);
 	    int index=scores.length-1;
 	    //2:先获取到要插入的位置 index
 	    for (int i = 0; i < scores.length; i++) {
 			if(score<scores[i]){
 				index=i;//我要插入的位置
 				break;
 			}	
 		}
 	    //3:元素后移
 	    for (int i = scores.length-1; i>index; i--) {
 			 scores[i]=scores[i-1]; //使用前面的元素覆盖后面的 
 		}
 	    
 	    //4:空已挪出,插入
 	    scores[index]=score;
 	    
 	    System.out.println("插入的下标为:"+index);
 	    
 	    System.out.print("插入后成绩为:");
 	    for (int i = 0; i < scores.length; i++) {
 			System.out.print(scores[i]+" ");
 		}

吃货联盟小项目

package com.wenyue;

import java.util.Date;
import java.util.Scanner;

public class Interface {
	@SuppressWarnings("deprecation")
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		double[] dish_P = {38,20,10}, all_C = new double[11]; 
		String[] dish_T={"红烧带鱼","鱼香肉丝","时令鲜蔬"}, dish_N=new String[11] ,dish_NewT=new String[11], dish_S = new String[11] ,dish_Con = {"已完成","已预订"};
		int [] dish_Nu = new int[11],dish_D = new int[11],dish_Pra={0,0,0},seq_Num = new int[1000] ;
		int dish_type=0,dish_Num=0,dish_Time=0,tse_Num = 0,nu_Order = 0,ntse_Num=0;
		double carry_Cost = 0,all_Cost = 0;
		String dish_Name = null,dish_site = null;
		Date date = new Date();
		int k=0;
		while (true) {
			System.out.println("\n欢迎使用“吃货联盟订餐系统”");
			System.out.println("**************************************");
			System.out.println("1、我要订餐\n2、查看餐袋\n3、签收订单\n4、删除订单\n5、我要点赞\n6、退出系统");
			System.out.println("**************************************");
			System.out.print("请选择:");
			int tab = input.nextInt();
			if (tab == 1) {
				System.out.println("***我要订餐***");
				System.out.printf("序号\t菜名\t单价\n1\t%s\t%s元\n2\t%s\t%s元\n3\t%s\t%s元\n",dish_T[0],dish_P[0],dish_T[1],dish_P[1],dish_T[2],dish_P[2]);
				if (nu_Order-k>=10) {
					System.out.println("您的订单总数已满,请先删除订单!");
					continue;
				}
				System.out.print("请选择您要点的菜品编号:");
				while (true) {
					dish_type = input.nextInt();
					if (dish_type > 0&&dish_type <= dish_T.length) {
						break;
					}else {
						System.out.print("您的编号有误,请输入本菜单中存在的菜品:");
					}
				}
				System.out.print("请选择您需要的份数:");
				while (true) {
					dish_Num = input.nextInt();
					if (dish_Num > 0) {
						break;
					}else {
						System.out.print("您输入份数有误,请输入大于0份:");
					}
				}
				carry_Cost = 6;
				if (dish_Num > 3) {
					for (int i =1 ; i <= dish_Num-3; i+=2) {
						carry_Cost += 3;
					}
				}
				System.out.print("请输入订餐人的姓名:");
				dish_Name = input.next();
				System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):");
				while (true) {
					dish_Time = input.nextInt();
					if (dish_Time>=10&&dish_Time<=20) {
						break;
					}else {
						System.out.print("您的输入有误,请输入10~20之间的整数!:");
					}
				}
				System.out.print("请输入送餐地址:");
				dish_site = input.next();
				all_Cost = carry_Cost + dish_P[dish_type-1] * dish_Num;
				System.out.printf("\n订餐成功!\n您定的是%s%s份\n送餐时间:%s点\n餐费:%s元,送餐费%s元,总计:%s元。\n",dish_T[dish_type-1],dish_Num,dish_Time,dish_P[dish_type-1] * dish_Num,carry_Cost,all_Cost);
				System.out.print("输入0返回:");
				while (true) {
					int in = input.nextInt();
					if (in == 0) {
						break;
					}else {
						System.out.print("您的输入有误,请输入0进行返回:");
					}
				}
				 dish_N[nu_Order-k]=dish_Name;
				 dish_NewT[nu_Order-k]=dish_T[dish_type-1];
				 dish_Nu[nu_Order-k]=dish_Num;
				 dish_D[nu_Order-k]=date.getDate();
				 dish_S[nu_Order-k]=dish_site;
				 all_C[nu_Order-k]=all_Cost;
				 seq_Num [nu_Order-k]= 1;
				 nu_Order++;
			}
			//选择3的情况
			else if(tab == 3) {	
				System.out.println("***签收订单***");
				System.out.print("请选择要签收的订单序号:");
				tse_Num = input.nextInt();
				seq_Num [tse_Num-1]= 0; 
				System.out.print("您选择的订单已完成签收,不能再次签收!");
				System.out.print("输入0返回:");
				while (true) {
					int in = input.nextInt();
					if (in == 0) {
						break;
					}else {
						System.out.print("您的输入有误,请输入0进行返回:");
					}
				}
			}
			//选择4的情况,删除订单
			else if(tab == 4) {
				System.out.println("***删除订单***");
				System.out.print("请输入要删除的订单序号:");
				ntse_Num = input.nextInt();
				for (int i = ntse_Num-1; i < nu_Order; i++) {
					dish_N[i]=dish_N[i+1];
					dish_NewT[i]=dish_NewT[i+1];
					dish_Nu[i]=dish_Nu[i+1];
					dish_D[i]=dish_D[i+1];
					dish_S[i]=dish_S[i+1];
					all_C[i]=all_C[i+1];
					seq_Num [i]= seq_Num [i+1];
				}
				k++;
				System.out.print("删除订单成功!");
				System.out.print("输入0返回:");
				while (true) {
					int in = input.nextInt();
					if (in == 0) {
						break;
					}else {
						System.out.print("您的输入有误,请输入0进行返回:");
					}
				}
			}
			//选择2的情况
			else if (tab == 2) {
				System.out.println("***查看餐袋***");
				System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t总金额\t订单状态");
				for (int i = 1; i <= nu_Order-k; i++) {
					System.out.printf("%s\t%s\t%s%s份\t%s日\t%s\t\t%s元\t%s\n",i,dish_N[i-1],dish_NewT[i-1],dish_Nu[i-1],dish_D[i-1], dish_S[i-1], all_C[i-1],dish_Con[seq_Num [i-1]]);
				}
				System.out.print("输入0返回:");
				while (true) {
					int in = input.nextInt();
					if (in == 0) {
						break;
					}else {
						System.out.print("您的输入有误,请输入0进行返回:");
					}
				}	
			}
			//选择5的情况
			else if(tab == 5){
				System.out.println("***我要点赞***");
				System.out.printf("序号\t菜名\t单价\n1\t%s\t%s元\n2\t%s\t%s元\n3\t%s\t%s元\n",dish_T[0],dish_P[0],dish_T[1],dish_P[1],dish_T[2],dish_P[2]);
				System.out.print("请选择您要点赞的菜品编号:");
				while (true) {
					dish_type = input.nextInt();
					if (dish_type > 0&&dish_type <= dish_T.length) {
						break;
					}else {
						System.out.println("您的编号有误,请输入本菜单中存在的菜品:");
					}
				}
				dish_Pra[dish_type-1]++;
				System.out.println(dish_T[dish_type-1] +  dish_Pra[dish_type-1] +"赞");
				System.out.print("输入0返回:");
				while (true) {
					int in = input.nextInt();
					if (in == 0) {
						break;
					}else {
						System.out.print("您的输入有误,请输入0进行返回:");
					}
				}	
			}
			//选择6的情况,结束
			else if (tab == 6){
				System.out.print("谢谢使用,欢迎下次光临!");
				break;
			}
			else {
				System.out.print("您的输入有误,请重新输入!");
			}
		}
	}
}
chart.js/为什么需要使用数组:在内存空间中连续分配内存的一种结构
     一个变量默认情况下只能存储一个数据,数组可以存储若干个
 创建数组的语法:
      1:数据类型 [] 数组名 =new 数据类型[长度];     
      2:数据类型 [] 数组名=new 数据类型[]{a,b,c,d}    
      3:数据类型 [] 数组名={a,b,c,d};
      
  向数组中保存元素的方式:第几个位置赋什么值
      index索引**:从0开始的,一值到数组的长度-1
      如果index的范围超了,就会引发运行异常:ArrayIndexOutOfBoundsException(数组下标越界)
  
  数据类型:数组中元素的类型
 
  获取数组中每个元素的值:通过index下标
      
  修改数组中的值:通过index进行直接复制
  
  数组的长度:通过数组名.length
  
  二维数组:数组中的一个元素还是数组
  
数组是一种类型:象征着多的一种类型
   
   操作数组的工具类:Arrays static修饰的方法,所以说可以通过类名直接使用
   
   如何为数组排序(升序):自然排序 1 2 3 a b c
   Arrays.sort():升序排序(数字 字母。。。进行排序 ASCII)
    通过逆序输出,实现逆序的效果
   Arrays.toString():将数组转换为String变量进行输出(鸡肋)
     --print(在它打印变量的时候,默认会调用该变量的toString方法)
   Arrays.fill():向数组中填充元素,直到填满为止
   Arrays.copyOf():复制一个数组出来,指定新数组的长度
   Arrays.binarySearch(); 查询一个数组中的元素所对应的索引位置(排序后的数组)
   
   1:打擂计算方式
      获取数组中最大的元素
      1.1 在循环结构外声明一个代表最大值的变量,默认以数组中的第一个元素为最大值 int max=arrs[0];
      1.2 通过循环遍历数组,获取后面的元素与max变量进行比较,如果后面的元素大于max变量,进行赋值交换
      1.3 循环结束时,输出max变量即可!
//  int ages[]={10,20,30,40,50,60};
//	    int max=ages[0];//默认最大值
//	    for (int i = 1; i < ages.length; i++) {
//			if(ages[i]>max){
//				//变量值的交换
//				max=ages[i];
//			}
//		}

      
   2:向数组中插入指定的元素,并维持元素的顺序(数组中元素的后移操作)
      [1,2,3,4,5,6,7]
      int scores[]={59,68,77,86,95};
	 	    System.out.print("插入前成绩为:");
	 	    for (int i = 0; i < scores.length; i++) {
	 			System.out.print(scores[i]+" ");
	 		}
	 	    
	 	    //向数组中插入一个成绩
	 	    System.out.println("请输入要插入的成绩:");
	 	    int score=in.nextInt();
	 	    
	 	    //1:对原有的数组进行扩容
	 	    scores=Arrays.copyOf(scores, scores.length+1);
	 	    int index=scores.length-1;
	 	    //2:先获取到要插入的位置 index
	 	    for (int i = 0; i < scores.length; i++) {
	 			if(score<scores[i]){
	 				index=i;//我要插入的位置
	 				break;
	 			}	
	 		}
	 	    //3:元素后移
	 	    for (int i = scores.length-1; i>index; i--) {
	 			 scores[i]=scores[i-1]; //使用前面的元素覆盖后面的 
	 		}
	 	    
	 	    //4:空已挪出,插入
	 	    scores[index]=score;
	 	    
	 	    System.out.println("插入的下标为:"+index);
	 	    
	 	    System.out.print("插入后成绩为:");
	 	    for (int i = 0; i < scores.length; i++) {
	 			System.out.print(scores[i]+" ");
	 		}







吃货联盟小项目
package com.wenyue;

import java.util.Date;
import java.util.Scanner;

public class Interface {
	@SuppressWarnings("deprecation")
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		double[] dish_P = {38,20,10}, all_C = new double[11]; 
		String[] dish_T={"红烧带鱼","鱼香肉丝","时令鲜蔬"}, dish_N=new String[11] ,dish_NewT=new String[11], dish_S = new String[11] ,dish_Con = {"已完成","已预订"};
		int [] dish_Nu = new int[11],dish_D = new int[11],dish_Pra={0,0,0},seq_Num = new int[1000] ;
		int dish_type=0,dish_Num=0,dish_Time=0,tse_Num = 0,nu_Order = 0,ntse_Num=0;
		double carry_Cost = 0,all_Cost = 0;
		String dish_Name = null,dish_site = null;
		Date date = new Date();
		int k=0;
		while (true) {
			System.out.println("\n欢迎使用“吃货联盟订餐系统”");
			System.out.println("**************************************");
			System.out.println("1、我要订餐\n2、查看餐袋\n3、签收订单\n4、删除订单\n5、我要点赞\n6、退出系统");
			System.out.println("**************************************");
			System.out.print("请选择:");
			int tab = input.nextInt();
			if (tab == 1) {
				System.out.println("***我要订餐***");
				System.out.printf("序号\t菜名\t单价\n1\t%s\t%s元\n2\t%s\t%s元\n3\t%s\t%s元\n",dish_T[0],dish_P[0],dish_T[1],dish_P[1],dish_T[2],dish_P[2]);
				if (nu_Order-k>=10) {
					System.out.println("您的订单总数已满,请先删除订单!");
					continue;
				}
				System.out.print("请选择您要点的菜品编号:");
				while (true) {
					dish_type = input.nextInt();
					if (dish_type > 0&&dish_type <= dish_T.length) {
						break;
					}else {
						System.out.print("您的编号有误,请输入本菜单中存在的菜品:");
					}
				}
				System.out.print("请选择您需要的份数:");
				while (true) {
					dish_Num = input.nextInt();
					if (dish_Num > 0) {
						break;
					}else {
						System.out.print("您输入份数有误,请输入大于0份:");
					}
				}
				carry_Cost = 6;
				if (dish_Num > 3) {
					for (int i =1 ; i <= dish_Num-3; i+=2) {
						carry_Cost += 3;
					}
				}
				System.out.print("请输入订餐人的姓名:");
				dish_Name = input.next();
				System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):");
				while (true) {
					dish_Time = input.nextInt();
					if (dish_Time>=10&&dish_Time<=20) {
						break;
					}else {
						System.out.print("您的输入有误,请输入10~20之间的整数!:");
					}
				}
				System.out.print("请输入送餐地址:");
				dish_site = input.next();
				all_Cost = carry_Cost + dish_P[dish_type-1] * dish_Num;
				System.out.printf("\n订餐成功!\n您定的是%s%s份\n送餐时间:%s点\n餐费:%s元,送餐费%s元,总计:%s元。\n",dish_T[dish_type-1],dish_Num,dish_Time,dish_P[dish_type-1] * dish_Num,carry_Cost,all_Cost);
				System.out.print("输入0返回:");
				while (true) {
					int in = input.nextInt();
					if (in == 0) {
						break;
					}else {
						System.out.print("您的输入有误,请输入0进行返回:");
					}
				}
				 dish_N[nu_Order-k]=dish_Name;
				 dish_NewT[nu_Order-k]=dish_T[dish_type-1];
				 dish_Nu[nu_Order-k]=dish_Num;
				 dish_D[nu_Order-k]=date.getDate();
				 dish_S[nu_Order-k]=dish_site;
				 all_C[nu_Order-k]=all_Cost;
				 seq_Num [nu_Order-k]= 1;
				 nu_Order++;
			}
			//选择3的情况
			else if(tab == 3) {	
				System.out.println("***签收订单***");
				System.out.print("请选择要签收的订单序号:");
				tse_Num = input.nextInt();
				seq_Num [tse_Num-1]= 0; 
				System.out.print("您选择的订单已完成签收,不能再次签收!");
				System.out.print("输入0返回:");
				while (true) {
					int in = input.nextInt();
					if (in == 0) {
						break;
					}else {
						System.out.print("您的输入有误,请输入0进行返回:");
					}
				}
			}
			//选择4的情况,删除订单
			else if(tab == 4) {
				System.out.println("***删除订单***");
				System.out.print("请输入要删除的订单序号:");
				ntse_Num = input.nextInt();
				for (int i = ntse_Num-1; i < nu_Order; i++) {
					dish_N[i]=dish_N[i+1];
					dish_NewT[i]=dish_NewT[i+1];
					dish_Nu[i]=dish_Nu[i+1];
					dish_D[i]=dish_D[i+1];
					dish_S[i]=dish_S[i+1];
					all_C[i]=all_C[i+1];
					seq_Num [i]= seq_Num [i+1];
				}
				k++;
				System.out.print("删除订单成功!");
				System.out.print("输入0返回:");
				while (true) {
					int in = input.nextInt();
					if (in == 0) {
						break;
					}else {
						System.out.print("您的输入有误,请输入0进行返回:");
					}
				}
			}
			//选择2的情况
			else if (tab == 2) {
				System.out.println("***查看餐袋***");
				System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t总金额\t订单状态");
				for (int i = 1; i <= nu_Order-k; i++) {
					System.out.printf("%s\t%s\t%s%s份\t%s日\t%s\t\t%s元\t%s\n",i,dish_N[i-1],dish_NewT[i-1],dish_Nu[i-1],dish_D[i-1], dish_S[i-1], all_C[i-1],dish_Con[seq_Num [i-1]]);
				}
				System.out.print("输入0返回:");
				while (true) {
					int in = input.nextInt();
					if (in == 0) {
						break;
					}else {
						System.out.print("您的输入有误,请输入0进行返回:");
					}
				}	
			}
			//选择5的情况
			else if(tab == 5){
				System.out.println("***我要点赞***");
				System.out.printf("序号\t菜名\t单价\n1\t%s\t%s元\n2\t%s\t%s元\n3\t%s\t%s元\n",dish_T[0],dish_P[0],dish_T[1],dish_P[1],dish_T[2],dish_P[2]);
				System.out.print("请选择您要点赞的菜品编号:");
				while (true) {
					dish_type = input.nextInt();
					if (dish_type > 0&&dish_type <= dish_T.length) {
						break;
					}else {
						System.out.println("您的编号有误,请输入本菜单中存在的菜品:");
					}
				}
				dish_Pra[dish_type-1]++;
				System.out.println(dish_T[dish_type-1] +  dish_Pra[dish_type-1] +"赞");
				System.out.print("输入0返回:");
				while (true) {
					int in = input.nextInt();
					if (in == 0) {
						break;
					}else {
						System.out.print("您的输入有误,请输入0进行返回:");
					}
				}	
			}
			//选择6的情况,结束
			else if (tab == 6){
				System.out.print("谢谢使用,欢迎下次光临!");
				break;
			}
			else {
				System.out.print("您的输入有误,请重新输入!");
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值