第六章 数组
数组是一个变量,由数据类型相同的一组元素组成!
变量:内存中的一块空间!
数组:内存中的一串连续的空间!
数组的结构和基本要素:
1,标识符:数组的名称,用于区分不同的数组
2,数组元素:向数组中存放的数据
3,元素下标:对数组元素进行编号
4,元素类型:数组元素的数据类型
数组中的素有元素必须是相同的数据类型!
public class 都没 {
public static void main(String[] args){
int[] nums = {122,33,34,'a',345};
}
}
数组定义:数组类型[] 数组名 = new 数组类型[数组长度];
初始化一维数组:
int years[] = {2012,2013,1023,1024,2015,2016};
int [] num = {1,2,3,4,5}; //常见写法
int array[] = {}; //没有元素地址,不能对数组赋值,不能存放数据!
int[] nums = {122,33,34,'a',345};
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
double[] nums1 = new double[10]; //定义数组是对数组进行默认的初始化
for (int j = 0; j < nums1.length; j++) {
System.out.println(nums1[j]);
}
char[] ch = new char[10]; //定义字符型数组
boolean[] nums2 = new boolean[10]; //定义布尔类型数组
String[] num3 = new String[10]; //定义字符串类型数组
for (int j = 0; j < nums1.length; j++) {
System.out.println(ch[j]);//输出默认值!
System.out.println(nums2[j]);
System.out.println(num3[j]);
给数组动态赋值及输出实例:
Scanner input = new Scanner(System.in);
final int N = 5;
double[] score = new double[N];
//动态赋值
for (int i = 0; i < N; i++) {
System.out.printf("请输入第%d门课的成绩:",i+1);
score[i] = input.nextDouble();
}
//打印结果
for (int i = 0; i < score.length; i++) {
System.out.printf("输入的第%d门课的成绩为:%.2f\n",i+1,score[i]);
}
input.close();
记得用完Scanner之后关闭!
实例:斐波那契数列输出及求和及平均值
final int N = 25;
int sum = 0;
int avg = 0;
int [] nums = new int[N];
//从第三个元素开始,(当前元素)1=(前一个元素)1+(前前一个元素)0;
//给第一,二个元素赋初值,0,1;
nums[0] = 0;
nums[1] = 1;
for (int i = 2; i < nums.length; i++) {
nums[i] = nums[i-1] + nums[i-2];
}
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
sum += nums[i];
}
System.out.println();
System.out.println(sum);
System.out.println();
avg = sum /N;
System.out.println(avg);
实例:数列动态赋值及求最大小值!
//定义数组并且给数组动态赋值
Scanner input = new Scanner(System.in);
int[] nums = new int[5];
for (int i = 0; i < nums.length; i++) {
System.out.printf("请输入第%d个数组的值:",i+1);
nums[i] = input.nextInt();
}
//通过循环求数组的最大值和最小值
int max = nums[0];
int min = nums[0];
for (int i = 1; i < nums.length; i++) {
if(nums[i] > max){
max = nums[i];
}
if(nums[i] < min){
min = nums[i];
}
}
//输出最大值与最小值
System.out.print("数组的元素为:");
for (int i = 0; i < nums.length; i++) {
System.out.print(nums[i]+" " + "");
}
System.out.println();
System.out.println("数组的最大值为:" + max);
System.out.println("数组的最小值为:" + min);
input.close();