2019.1.3 任务
作业链接:
一、笔记
数组是一个变量,存储相同数据类型的一组连续数据
数组基本要素:标识符、数组元素、元素下标(从0开始)、元素类型
数据类型 []数组名=new 数据类型[数组长度];
数据类型 数组名[]=new 数据类型[数组长度];
"[数组长度]"决定连续分配的空间的个数,通过数组length属性可获取此长度
数组的数据类型用于确定分配的每个空间的大小
数据类型 []数组名={值1,值2,值3,...,值n}
数据类型 []数组名=new 数据类型[]{值1,值2,值3,...,值n}
数组使用步骤:声明数组、分配空间、赋值、处理数据
面试题:堆和栈的区别:
堆存放的是地址,由程序员自己分配
栈存放的是值,由系统分配
二、作业
package com.homework; import java.util.Scanner; /** * 2018.1.3 * @author 宇 * 2018-1-3 */ public class Sort { public static void main(String[] args) { int[] scores = new int[6]; //声明一个长度为6的数组 Scanner sc = new Scanner(System.in); System.out.println("请输入学生成绩;"); for(int i=0;i<scores.length-1;i++) { scores[i]=sc.nextInt(); //键盘输入数组元素 } System.out.println("排序前"); for(int score : scores) { //输入的数组元素列出来 System.out.print(score+" "); } System.out.println(); //冒泡排序 for(int i=0;i<scores.length-1;i++) { //需要排序的轮数 for(int j=0;j<scores.length-i-1;j++) { //每轮比较的次数 int temp; if(scores[j]<scores[j+1]) { //先前两个比较,值大的换到后面,大的值再和下一个比较 temp = scores[j]; scores[j] = scores[j+1]; scores[j+1] = temp; } } } System.out.println("排序后:"); for(int score : scores) { //再将排序后的数组列出来 System.out.print(score+" "); } System.out.println(); //用输入的成绩跟数组中每一个元素比较,当输入的成绩大于某个值时, //这个值的位置,就是输入的成绩应该在的位置,也就是找到输入成绩应该的下标 System.out.println("请输入添加学生成绩:"); int addScore = sc.nextInt(); int index=scores.length-1; for(int i=0;i<scores.length;i++) { if(addScore>scores[i]) { index=i; //找到输入成绩应在的下标 break; } } for(int i = scores.length-2;i>=index;i--) {//从倒数第二个值开始,每一个往后赋值,直到找到的下标 scores[i+1] = scores[i]; } scores[index] = addScore; //将添加的成绩赋值给找到的下标所对应值 System.out.println("插入一个学生的成绩后:"); for(int score : scores) { //再将插入数据后重新排列后的数组元素列出来 System.out.print(score+" "); } System.out.println(); } }