他的回复:
hw63088532 Java数组 笔记一、什么是数组,如何定义数组?数组是一种数据类型,用来存储具有相同类型的一组数据问:如何声明一个一维数组?Java中数组的声明有两种方式:第一种:数组类型[] 数组名 比如:int[] arr;第二种:数组类型 数组名[] 比如: int arr[]以上两种声明方式的区别就在于[]的位置,前一种是Java常用方式,后一种是c++风格,但在Java中是合法的问:如何初始化一个一维数组?有两种方式:一种是静态初始化,一种是动态初始化方式一:静态初始化数组类型[] 数组名 = new 数组类型[]{元素1取值,元素2取值....} int[] arr = new int[]{3,45,60}在声明数组的同时,用{}的方式对数组直接赋值。对于静态初始化,Java提供了简写的格式数组类型[] 数组名 = {元素1取值,元素2取值....}; int[] array = {100,2100,300,55};方式二:动态初始化数组类型[] 数组名 = new 数组类型[数组长度] int[] array = new int[5]; //这里5表示的是数组元素的个数, 表示初始化一个长度为5的整型数组,每个元素的默认值是0动态初始化就是初始化时在方括号中指明数组的长度,由系统为数组分配初始化默认值,不同数据类型的默认值是不同的在创建数组的时候,如果确定数组中的具体元素,可以采用静态初始化;如果不确定数组中存储哪些数据,可以采用动态初始化方式,预先分配内存空间,后期再赋值二、一维数组元素的访问和遍历数组中的元素是按索引编号的,从0开始,逐次加1,arr.length-1结束,是连续。直接通过数组名[索引] 即可访问,数组中的每个元素其实都是一个变量,也可以重新赋值。注意:访问数组元素过程中,如果索引的值超出了数组的界限[0,arr.length-1],就会抛出IndexOutOfBoundsException异常遍历数组就是挨个获取数组中的每个元素,最常用的是使用for循环,如下// 使用静态初始化的方式声明一个int类型的数组 int[] a1 = {1,100,10,20,55,689}; // 从第一个元素遍历到最后一个元素 for(int i=0;i/ 从最后一个元素遍历到第一个元素 for(int i=a1.length-1;i>=0;i--){ System.out.println(a1[i]); }三、二维数组二维数组就是数组中的数组,也就是数组中的每一个元素也是一个一维数组数据类型[][] 数组名 = new 数组类型[外层数组长度][内层数组长度]外层数组长度表示的是整个数组的长度,通过数组名.length获取,内层数组长度表示数组中每个元素的数组长度二维数组的遍历for(int i=0;i/外层数组长度 for(int j=0;j/内层数组长度 System.out.print(score[i][j]+" "); } System.out.println(); }四、数组相关算法1)排序数组排序就是值将数组元素按照从小到大或从大到小的顺序排序,常见排序算法有:插入排序,冒泡排序,快速排序等,一般是通过数组中元素的交换次数来衡量排序算法的优劣以冒泡排序为例:public class Demo { public static void main(String[] args) { int[] arr = {89,50,84,57,21}; for(int i=0;iarr[j+1]) { temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; } } } for(int i=0;i/假设数组中的第一个元素为最大值 for(int i=1;imax) { max=arr[i]; } } System.out.println(max); //101求最小值算法:定义一个变量存放最小值,假设数组中第一个元素是该变量的初始值,该变量跟数组中其他值挨个比较,如果遇到比该值更小的就重新赋值为这个较小者,比较完所有元素之后,该变量最后的值就是数组中的最小值3)数组的过滤重复算法:去掉数组中重复的数据,给每个元素一个标记,每个元素跟数组中的其他元素进行比较,如果完全相同就改变原有标记,将没有改变标记的元素重新放入一个新的数组,并统计其个数,最终将新数组的数据复制到另一个新的数组中,就是过来的数组注意:因为事先是不知道不重复的元素的个数的,申请的tempArr数组的长度和原数组长度是一样长的,如果直接输出tempArr的话,会发现数组的后几位可能是默认值0所以,在统计出不重复的元素的个数之后,再用System.arraycopy()方法将数组中不重复的值复制到一个新的数组中 //再创建一个数组,用来存放过滤后的数组 int[] newArr = new int[t]; //将tempArr中非零的元素复制到newArr中(假设原数组中没有0) System.arraycopy(tempArr,0,newArr,0,t); //输出过滤后的数组 for(int i=0;i/12 67 34 45 五、Arrays工具类的使用JAVA提供了一个数组工具类java.util.Arrays,基本上常见的数组操作,这个类都提供了静态方法可供直接调用