标签:
掌握数组的基本用法
掌握数组的几种典型应用
问题:Java考试结束后,老师给张浩分配了一项任务,让他计算全班(30人)的平均分
解决方案
缺点
变量太多
不利于数据处理
数组是一个变量,存储相同数据类型的一组数据
声明一个变量就是在内存空间划出一块合适的空间
声明一个数组就是在内存空间划出一串连续的空间
标识符:数组的名称,用于区分不同的数组
数组元素:向数组中存放的数据
元素下标:对数组元素进行编号,从0开始,数组中的每个元素都可以通过下标来访问
元素类型:数组元素的数据类型
步骤一:声明数组
数据类型[] 数组名;
或者
数据类型 数组名[]
步骤二:分配空间
数组名 = new 数组类型[数组长度]
步骤一和步骤二可以合并
数据类型[] 数组名= new 数据类型[数组长度];
步骤三 赋值
数组名[下标值]
或
数据类型[] 数组名 ={值1,值2..};
或
数据类型[] 数组名 = new 数组类型[]值1,值2..};
步骤四 使用
public class StudenAvg {
public static void main(String[] args) {
int score[] = new int[30];
//从外部获得学生成绩
Scanner input = new Scanner(System.in);
//初始化
for (int i = 0; i < score.length; i++) {
System.out.println("请输入第"+(i+1)+"学生的成绩:");
score[i] = input.nextInt();
}
//求平均值
double avg = 0;
for (int i = 0; i < score.length; i++) {
avg+=score[i];
}
avg=avg/30.0;
System.out.println("平均值是:"+avg);
}
}
注:
数组长度:数组名.length
public class ErrorDemo1 {
public static void main(String[ ] args){
int[ ] score = new int[ ];
score[0] = 89;
score[1] = 63;
System.out.println(score[0]);
}
}
public class ErrorDemo2 {
public static void main(String[ ] args) {
int[ ] scores = new int[2];
scores[0] = 90;
scores[1] = 85;
scores[2] = 65;
System.out.println(scores[2]);
}
}
public static void main(String[ ] args){
int[ ] score = new int[5];
score = {60, 80, 90, 70, 85};
int[ ] score2;
score2 = {60, 80, 90, 70, 85};
}
有一个数列:8,4,2,1,23,344,12
循环输出数列的值
求数列中所有数值的和
猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数
实现
/**
*
* @author wangshaohua
* 功能:有一个数列:8,4,2,1,23,344,12
循环输出数列的值
求数列中所有数值的和
猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数
*
*/
public class Show1 {
public static void main(String[] args) {
int[] arr = {8,4,2,1,23,344,12};
//循环输出数列的值
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+"\t");
}
//求数列中所有数值的和
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum+=i;
}
System.out.println("\n数列中所有数值的和:"+sum);
//从键盘中任意输入一个数据,判断数列中是否包含此数
Scanner input = new Scanner(System.in);
System.out.println("请输入需要判断的数值:");
int num = input.nextInt();
int index = -1;//相等值的下标
for (int i = 0; i < arr.length; i++) {
if(num==arr[i]){
index = i;
break;
}else {
continue;
}
}
if(index==-1){
System.out.println("你输入的值不在数列当中");
}else {
System.out.println("你输入的值在数列当中,序号是:"+index);
}
}
}
问题:从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分
实现
ublic class MaxScore {
/**
* 求数组最大值
*/
public static void main(String[] args) {
int[] scores = new int[5];
int max = 0; //记录最大值
System.out.println("请输入5位学员的成绩:");
Scanner input = new Scanner(System.in);
for(int i = 0; i < scores.length; i++){
scores[i] = input.nextInt();
}
//计算最大值
max = scores[0];
for(int i = 1; i < scores.length; i++){
if(scores[i] > max){
max = scores[i];
}
}
System.out.println("考试成绩最高分为:" + max);
}
}
问题:循环录入5位学员成绩,进行升序排列后输出结果
分析:
使用java.util.Arrays类
java.util包提供了许多工具类
Arrays类提供操作数组的方法,例排序、查询
Arrays类的sort()方法: 对数组进行升序排列
实现
public class ScoreSort {
public static void main(String[] args) {
int[] scores = new int[5]; //成绩数组
Scanner input = new Scanner(System.in);
System.out.println("请输入5位学员的成绩:");
//循环录入学员成绩
for(int i = 0; i < scores.length; i++){
scores[i] = input.nextInt();
}
Arrays.sort(scores); //对数组进行升序排序
System.out.print("学员成绩按升序排列:");
//利用循环输出学员成绩
for(int i = 0; i < scores.length; i++){
System.out.print(scores[i] + " ");
}
}
}
问题:有一组学员的成绩{99,85,82,63,60},将它们按升序排列。要增加一个学员的成绩,将它插入成绩序列,并保持升序。
分析:
将成绩序列保存在长度为6的数组中
通过比较找到插入位置
将该位置后的元素后移一个位置
将增加的学员成绩插入到该位置
实现
public class Insert {
public static void main(String[] args) {
int[] list = new int[6]; // 长度为为6的数组
list[0] = 99;
list[1] = 85;
list[2] = 82;
list[3] = 63;
list[4] = 60;
int index = list.length; //保存新增成绩插入位置
System.out.println("请输入新增成绩: ");
Scanner input = new Scanner(System.in);
int num = input.nextInt(); // 输入要插入的数据
//找到新元素的插入位置
for(int i = 0; i < list.length; i++){
if(num > list[i]){
index = i;
break;
}
}
//元素后移
for(int j = list.length-1; j > index; j--){
list[j] = list[j-1]; //index下标开始的元素后移一个位置
}
list[index] = num;//插入数据
System.out.println("插入成绩的下标是:"+index);
System.out.println("插入后的成绩信息是: ");
for (int k = 0; k < list.length; k++) { // 循环输出目前数组中的数据
System.out.print(list[k] + "\t");
}
}
}
数组有哪些特点?
使用数组的四个步骤?
如何实现数组的排序?
如何求数组最大/最小值?
如何向数组中插入一个元素?
标签:
原文地址:http://www.cnblogs.com/mentorStudio/p/5a04c666d56aa6c3a17b20153388d6a5.html