数组
数组是一个变量,存储相同数据类型的一组数据
声明一个变量是在内存空间里划出一块合适的空间
声明一个数组就是在内存空间里划出一串连续的空间
数组基本要素
标识符–>数组名
数组元素 -->值
元素下标:从0开始
元素类型 -->类型
注:数组长度固定不变,避免数组越界
演示数组的定义和使用
单独声明-分配空间-赋值-使用
int[] a;//单独声明
a=new int[3];//分配空间
//赋值
a[0]=88;
a[1]=90;
a[2]=96;
a[0]=75;
System.out.println(a[0]);
注:声明数组时不规定数组长度
声明数组并分配空间
数据类型[ ] 数组名 = new 数据类型[大小] ;
数组元素根据类型不同,有不同的初始值
边声明边赋值
int[ ] scores = {89, 79, 76};
int[ ] scores = new int[ ]{89, 79, 76};
不能指定数组长度
数组定义时的常见错误
1、编译出错,没有写明数组的大小
int[] a = new int[];
2、编译出错,数组越界
int[] a =new int[2];
a[2] =1;
3、编译出错,创建数组并赋值的方式必须在一条语句中完成
int[ ] score = new int[5];
score = {60, 80, 90, 70, 85};
int[ ] score2;
score2 = {60, 80, 90, 70, 85};
数组的操作
输出数组里的元素
int[] a =new int[30];
for (int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*100);
}
System.out.print("[");
for (int i=0;i<a.length;i++){
if (i==a.length-1){
System.out.print(a[i]+"]");
break;
}
System.out.print(a[i]+",");
}
求和
int sum=0;
for (int i=0;i<a.length;i++){
sum+=a[i];
}
增强for
for (int num:a){//增强for 将数组中的元素临时赋值给num
sum+=num;
}
System.out.println(sum/(double)a.length);
}
求最大值
先假设a[0]是最大值max,数组里的其他元素依次和max比较,如果比max大,就将值给max
int max=a[0];
for (int i = 1; i < a.length; i++) {
if (a[i]>max){
max=a[i];
}
}
System.out.println("最大值是:"+max);
插入数值
int[] a={99,85,82,63,60};
//第一步先扩容
// int[] b=new int[a.length+1];
// for (int i = 0; i < a.length; i++) {
// b[i]=a[i];
// }
int[] b=Arrays.copyOf(a,6);
System.out.println(Arrays.toString(b));
int num=98;
//从后向前比较
//比该数小的后移
//找到比该数大的 则该数在大的后面插入
//如果找不到比该数大的 则该数插入首位
boolean isInsert=false;
for (int i = b.length-2; i >=0; i--) {//此时的数组b里面的元素是{99,85,82,63,60,0}所以从b.length-2开始比较
if (b[i]<num){
b[i+1]=b[i];
}else {
isInsert=true;
b[i+1]=num;//找到比该数大的 则该数在大的后面插入
break;
}
}
if (!isInsert){
b[0]=num;//如果找不到比该数大的 则该数插入首位
}
System.out.println(Arrays.toString(b));
选择排序
//基本逻辑:外层循环确定一个位置
//内层循环确定该位置的值(当前最小值)
int[] a=new int[10];
for (int i = 0; i < a.length; i++) {
a[i]=(int)(Math.random()*100);
}
System.out.println(Arrays.toString(a));
for (int i = 0; i < a.length-1; i++) {
int temp=a[i];//确定位置
int p=i;
for (int j = i+1; j < a.length; j++) {
if (temp>a[j]){
temp=a[j];
p=j;
}
}
a[p]=a[i];
a[i]=temp;
}
System.out.println(Arrays.toString(a));
Arrays
import java.util.Arrays;
Arrays.toString(a) 输出数组
Arrays.sort(a); 数组从小到大排列
int[] b=Arrays.copyOf(a,6); 复制数组a
数组的定义、使用与操作详解
本文围绕数组展开,介绍了数组基本要素,包括标识符、元素、下标和类型等。演示了数组定义和使用的三种方式,指出定义时常见错误。还阐述了数组的操作,如输出元素、求和、求最大值、插入数值、选择排序等,以及Arrays类的使用。
862

被折叠的 条评论
为什么被折叠?



