数组
循环用sum+=num
数组的定义
数组的内存分析
数组的遍历
跟索引相关的遍历用普通
增强for循环、for一直循环,跟索引无关用这个
int arr[]=new int[10];//数组的声明和创建
int sum=0;
Scanner sc=new Scanner(System.in);
for(int i=1;i<=10;i++){
System.out.println("input"+i+"score:");
int score=sc.nextInt();
arr[i-1]=score;
}
System.out.println("第六个学生成绩为:"+arr[5]);
for(int i=0;i<10;i++){
System.out.println(arr[i]);
}
for(int num:arr){
System.out.println(num);
}
数组的初始化
数组的最值问题
给定一个数组,求出数组中最大的数
原理:打擂原理
int arr[]={1,5,9,125,3,6,666};
int max=arr[0];
for(int i=0;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
}
System.out.println(max);
错误示例
int arr[] = {1, 5, 9, 125, 3, 6, 666};
int max = 0;
for (int i = 0; i < 7; i++) {
if (arr[i + 1] > arr[i]) { //错误在只能比较出最后相对大的数,逻辑错误,还有溢出
max = arr[i + 1];
}
System.out.println(max);
数组的查询问题
查询指定位置的元素
查询指定元素的位置,即找出元素对应的索引
局部变量必须初始化
int arr[]={1,5,56,48,99,56};
int index=-1;//查不到时,初始值有问题,要求这个初始值只要不是数组的索引即可
for(int i=0;i<arr.length;i++){
if(arr[i]==8){
index=i;
break;//只要找到这个元素,循环就停止
}
}
if(index!=-1){
System.out.println(index);
}else{
System.out.println("查无此数");
}
添加元素
public static void insertEle(int arr[],int index,int ele){
for(int i=arr.length-1;i>=(index+1);i--){
arr[i]=arr[i-1];
}
arr[index]=ele;
}
删除元素
Arrays.toString(); 数组直接好看的输出 java.util.Arrays中
删除指定位置上的元素
删除指定元素
main方法
null的数组有栈,没有指向,
可变参数(了解即可)
arrays工具类
数组的复制
二维数组
本质上全部都是一维数组
二维数组初始化方式
第二个2只限制在初始化的时候