五 . 数组
一 . 数组概述
一.为什么使用数组?
案例:如何存储100名学生的成绩?学生的全部成绩+1?
1.使用变量存储,重复声名100个double类型的变量
缺点:重复操作过多,数据冗余,无法统一操作等。
1.数组:
一组连续的存储空间,存储多个相同数据类型的数组。
生活中的数组:
书架,香烟......
(1)特点:
类型相同;长度固定。
2.数组的创建:
(1)声名数组类型变量,定义变量名
int[] a = new int[5];
数组中的每个数据被称为”数组元素“。
对每个元素进行赋值或取值的操作被称为”元素的访问“。
访问元素时,需要使用”下标/索引“(从0开始,依次+1,自动生成)。
访问的语法:数组名[下标/索引]。eg:a[0] = 2;
(2)下标的范围
[0,array.length-1]
3.数组的遍历:
从头至尾,逐一对数组的每个元素进行访问。
数组名.length 可获取动态数组长度。
4.数组的默认值(初始化):
整数:0;小数:0.0;字符:u0000;布尔:false;其他:null。
在没有为数组元素赋值的情况下,依旧可以正确访问。
二 . 数组的创建
一.数组的创建
1.先声明,再分配空间:
数据类型[]数组名;
数组名 = new 数据类型[长度];
2.声名并分配空间:
数据类型[] 数组名 = new 数据类型[长度];
3.声名并赋值(繁):
数据类型[] 数组名 =new 数据类型[]{value1,value2,value3,...};
4.声名并赋值(简):
数据类型[] 数组名 ={value1,value2,value3,...};//显式初始化,注意:不支持换行书写。
二.数组的排序
JDK排序:java.util.Arrays.sort(数组名);//JDK提供(升序)
三.数组中常见的问题
数组索引越界异常:ArrayIndexOutOfBoundsException(访问数组中不存在的索引)
空指针异常:NullPointerException(数组引用存储的值为null而非数组的地址值时)
package Winter.array;
//数组的创建
public class CreatArray01 {
public static void main(String[] args) {
int[] a = new int[5];//声名int数组类型变量,定义变量名为a;分配长度为5的连续空间
//可以存储5个int类型的值;
//依此赋值
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;
a[4]=5;
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
System.out.println();
//System.out.println(a[5]);//访问无效索引,会导致数组索引越界。
double[] a1 = new double[5];
for (int i = 0; i <a1.length ; i++) {
System.out.print(a1[i]+" ");
}
System.out.println();
String[] str = new String[5];
for (int i = 0; i < str.length; i++) {
System.out.print(str[i]+" ");
}
}
}
package Winter.array;
import java.util.Arrays;
import java.util.Scanner;
//给定一个整数数组,读入一个整数n,如果n在整数中存在,输出下标,不存在则输出-1.
public class Array02 {
public static void main(String[] args) {
int[] a1 = {23,24,25,26,27,28};
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的数字:");
int n = sc.nextInt();
int index = -1;
//循环查找
for (int i = 0; i < a1.length; i++) {
if (a1[i]==n){
//存在
index = i;
break;
}
}
System.out.println(index);
//升序遍历(JDK排序):java.util.Arrays.sort(数组名);//JDK提供(升序)
Arrays.sort(a1);
for (int i = 0; i < a1.length; i++) {
System.out.println(a1[i]);
}
//降序遍历:需要手工完成元素的倒置
int[] a2 = {11,22,33,44,55,66,77,88};
int r1;
for (int i = 0; i < a2.length/2; i++) {
//两值交换,借助第三变量
r1 = a2[a2.length-1-i];
a2[a2.length-1-i] = a2[i];
a2[i] = r1;
}
for (int i = 0; i < a2.length; i++) {
System.out.print(a2[i]+" ");
}
}
}
package Winter.array;
/**
* 自定义方法遍历数组
* **:引用类型的变量作为参数传递给方法时,传递的是地址值。(共用同一个地址值)
* 基本类型的变量作为参数传递时,传的是 值 。
* */
public class Array04 {
public static void main(String[] args) {
int[] a2 = {23,23,24,35,34,35,35,34,34,12};
printArray(a2);
}
public static void printArray(int[] a1){
for (int i = 0; i < a1.length; i++) {
System.out.print(a1[i]+" ");
}
}
}
最后
以上就是野性火最近收集整理的关于五 . 数组五 . 数组的全部内容,更多相关五内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复