数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
数组名 元素 角标、下标、索引 数组的长度:元素的个数
①照维数:一维数组、二维数组、。。。 ②照数组元素的类型:基本数据类型元素的数组、引用数据类型元素的数组。
1.数据与数据之间的逻辑关系:集合、一对一、一对多、多对多 2.数据的存储结构:
线性表:顺序表(比如:数组)、链表、栈、队列树形结构:二叉树图形结构算法排序算法搜索算法int num;//声明 num=10;//初始化 int id = 1001;//声明+初始化
int[] ids;//声明 //1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行 ids = new int[]{1001,1002,1003,1004}; //1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行 String[] names = new String[5];
int[] arr4 = {1,2,3,4,5};//类型推断
通过角标的方式调用。 数组的角标(或索引从0开始的,到数组的长度-1结束) name[0]= “zhangsan”; name[1]= “lisi”; name[2]= “wangsu”; name[3]= “sunliu”; name[4]= “jerry”;//charAt(0)
System.out.println(names.length()); 数组一旦初始化,其长度就是确定的,arr.length 数组长度一旦确定,就不可改变;
数组元素是整型:0 数组元素是浮点型:0.0 数组元素是char型:0 或 ‘\u0000’ 数组元素是boolean型:false 数组元素是引用数据类型:null
数组属于引用数据类型。 数组的元素可以是引用数据类型。 一个一维数组A的元素如果还是一个一维数组类型的,则次数组A称为二维数组。
System.out.println(arr4.length);//3 System.out.println(arr4[0].length);//3 System.out.println(arr4[1].length);//4
规定:二维数组分为外层数组的元素,内层数组的元素
int[][] arr = new int[4][3]; 外层元素: arr[0],arr[1]等 内层元素: arr[0][1],arr[1][2]等 数组元素的默认初始化值 针对于初始化方式一:比如: int[][] arr = new int[4][3]; 外层元素的初始化值为:地址值 内层元素的初始化值为:与一维数组初始化情况相同 针对于初始化方式二:比如: int[][] arr = new int[4][]; 外层元素的初始化值为: null 内层元素的初始化值为:不能调用,否则报错。1.数组元素的赋值(杨辉三角、回形数等)
2.求数值型数组中元素的最大值、最小值、平均数、总和等
3.数组的复制、反转、查询(线性查找、二分查找)
4.数组元素的排序算法(十大排序)
选择排序 直接排序、堆排序 交换排序 冒泡排序、快速排序 插入排序 直接插入排序、折半插入排序,Shell排序 归并排序桶式排序基数排序排序算法性能比较
java.util.Arrays:操作数组的工具类,里面定义了很多操作数组的方法
public static void main(String[] args){ //判断两个数组是否相等 int[] arr1 = new int[] { 1,2,3,4 }; int[] arr2 = new int[] { 1,3,2,4 }; System.out.println(Arrays.equals(a, b));//false //输出数组信息 System.out.println(Arrays.toString(arr1)); //将指定值填充到数组之中 Arrays.fill(arr1,10); System.out.println(Arrays.toString(arr1));//[10,10,10,10] //对数组进行排序 Arrays.sort(arr2); System.out.println(Arrays.toString(arr2));//[1,2,3,4] //二分法查找 int arr3 = new int[]{-98,-34,2,34,66,79,106,210,333}; int index = Arrays.binarySearch(arr3,210); System.out.println(index); }一旦程序出现错误,程序就终止。
public static void main(String[] args){ //1 数组角标越界的异常:ArrayIndexOutOfBoundsException int[] arr =new int[]{1,2,3,4,5}; for(int i = 0;i<= arr.length;i++){ System.out.println(arr[i]); } System.out.println(arr[-1]); //2 空指针异常:NullPointerException //情况一: int[] arr1 = new int[]{1,2,3}; arr1 = null; System.out.println(arr1[0]); //情况二: int[][] arr2 = new int[4][]; System.out.println(arr2[0][0]); //情况三: String[] arr3 = new String[]{"AA","BB","CC"}; arr3[0] = null; System.out.println(arr3[0].toString()); }好了,我亲爱的读者朋友,以上就是本文的全部内容了!!!
觉得有点用记得给我点赞哦!
通过坚持不懈地学习,持续不断地输出,你的编程基本功算得上是突飞猛进。
为了帮助更多的程序员,专注于分享有趣的 Java 技术编程和有益的程序人生。一开始,阅读量寥寥无几,关注人数更是少得可怜。但随自己的不断努力,阅读量和关注人都在猛烈攀升。
绝对不容错过,期待与你的不期而遇。