1数组
数组是什么?内存中一块连续的空间,数量是固定的,存储相同的数据类型
特点:
长度:数组中最多可以存储几个数据。
数组名:快速找到数组中存储的数据
元素:数组名 [下标] 数组中存的数据
数组的数据类型:数组中存储数据的数据类型
下标、索引 范围[0,长度-1],可能引发数字下标越界异常
2.2数组的使用
声明数组-----告诉内存数据类型
数据类型[ ] 数组名;
int[] nums;
开空间----申请几个连续的空间
nums=new int[7];
边声明,边开空间
char[ ] a=new char[2];
长度:
int len=nums.length;
获取元素:数据名[下标]
系统会给数组分配默认值,int---0,double---0.0 boolean----false String----null
null 引用类型特殊值
int num=nums[0];
存储数据---赋值
nums[0]=123;
简便赋值的方法:
int[ ] num={1,2,3,4,5}
char[ ] cs;
cs=new char[ ]{'1','b'};
float[ ] fs=new float[ ] {1.3f,2.5f};\
通过键盘的输入赋值
for (int i = 0; i <=num,length; i++) {}
遍历
for (int i = 0; i <=num,length; i++) {
System.out.print(num[i]);
}
增强 for foreach 不能去修改内部数据
for (int n: nums){ nums的值赋给n
System.out.print(n);
}
数组的使用场景:多个相同数据类型的数据存储,更方便的操作(查找,排序,最值等)
数组的应用:
2.2.1查找
2.2.2最值
课后练习:
一、一组成绩67,90,-20,105,88,92,请将负分改为0,超过100的置为100,然后输出
public class Test810 {
public static void main(String[] args) {
int[] num = new int[] { 67, 90, -20, 105, 88, 92 };
int num1 = 0;
int num2 = 100;
for (int i = 0; i < num.length; i++) {
if (num[i] < 0) {
num[i] = num1;
}
if (num[i] > 100) {
num[i] = num2;
}
System.out.print(num[i] + " ");
}
}
}
二、有一个数列:8,4,2,1,23,344,12
1.循环输出数列的值
2.逆序(与原数列顺序相反)输出数列的值
3.求数列中所有数值的和
4.猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数
import java.util.Scanner;
public class Test809 {
public static void main(String[] args) {
int[] num = new int[] { 8, 4, 2, 1, 23, 344, 12 };
for (int i = 0; i < num.length; i++) {
System.out.print(num[i] + " ");
}
System.out.println();
for (int i = 6; i >= 0; i--) {
System.out.print(num[i] + " ");
}
System.out.println();
int he = 0;
for (int i = 0; i < num.length; i++) {
he += num[i];
}
System.out.print("所有数值的和为:" + he);
System.out.println();
Scanner sc = new Scanner(System.in);
boolean f = false;// false不包含
System.out.print("请入数字:");
int n = sc.nextInt();
for (int i = 0; i < num.length; i++) {
if (num[i] == n) {
f = true;
break;
}
}
if (f) {
System.out.print("包含");
} else {
System.out.print("不包含");
}
}
}
三、循环输入近6年某高校的录取分数,求出平均分和最低分
import java.util.Scanner;
public class Test808 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] lq = new int[6];// lq=录取分数
int he = 0;// he=分数总和
int num;
System.out.println("请输近六年的录取分数:");
for (int i = 0; i < lq.length; i++) {
num = sc.nextInt();
lq[i] = num;
he+=lq[i];
}
int min=lq[0];
for (int i = 0; i < lq.length; i++) {
if(min>lq[i]) {
min=lq[i];
}
}
double ping = he / 6.0;
System.out.println("录取平均分数为:"+ping+"最低分为"+min);
}
}
四、判断数组是否相同
对于两个整数数组,如果长度相同,且每个元素也都相同,我们就认为这两个数组相同。
public class Test9 {
public static void main(String[] args) {
int[] num1 = { 1, 2, 3, 4, 5, 6, 7 };
int l1 = num1.length;
int[] num2 = { 1, 2, 3, 4, 5, 6, 7 };
int l2 = num2.length;
int count = 0;
if (l1 == l2) {
for (int i = 0, j = 0; i < num1.length; i++, j++) {
if (num1[i] == num2[j]) {
count++;
}
}
if (count == num1.length) {
System.out.println("相同");
} else {
System.out.println("不相同");
}
} else {
System.out.println("不相同");
}
}
}