Java学习之数组操作
遍历数组
遍历数组元素
public static void main(String[] args){ int arrayNum[] = {12, 34, 2, 100, 22, 95, 99, 50, 46}; //使用for循环 for (int i=0; i<arrayNum.length; i++){ System.out.print(arrayNum[i] +"\t"); } //使用for...each循环,不能拿到数组下标 for (int num:arrayNum) { System.out.print(num +"\t"); } }
数组打印:使用 Arrays.toString() 快速打印数组内容
int arrayNum[] = {12, 34, 2, 100, 22, 95, 99, 50, 46}; //打印数组 System.out.println(Arrays.toString(arrayNum)); //[12, 34, 2, 100, 22, 95, 99, 50, 46]
数组排序
冒泡排序和快速排序
public static void main(String[] args){ int arrayNum[] = {88, 12, 34, 2, 100, 22, 95, 99, 50, 46}; //sort方法 Arrays.sort(arrayNum);//默认升序 System.out.println("sort排序后:" +Arrays.toString(arrayNum)); maoPaoSort(arrayNum); quickSort(arrayNum,0,arrayNum.length-1); System.out.println("快速排序后:" +Arrays.toString(arrayNum)); } //冒泡排序 --升序排序 // 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 // 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 // 针对所有的元素重复以上的步骤,除了最后一个,即需要进行length-1次。 // 第一次是对n个数进行n-1次比较,进行到最后第n个的一个是最大的; // 第二次是对n-1个数进行n-2次比较,进行到最后第n-1个的一个是最大的; // ...... // 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 private static void maoPaoSort(int[] arrayNum){ for(int i=0; i<arrayNum.length-1; i++){ for(int j=0; j<arrayNum.length-i-1;j++){ if(arrayNum[j]>arrayNum[j+1]){ int temp = arrayNum[j]; arrayNum[j] = arrayNum[j+1]; arrayNum[j+1] = temp; } } } System.out.println("冒泡排序后:" +Arrays.toString(arrayNum)); } //快速排序 // 思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 private static void quickSort(int[] array,int begin,int end){ if(begin<end){ //i和j没相遇之前比较各数据与基准值大小 int base = array[begin]; //取第一个值为基准值 int i = begin; //左标记为i int j = end; //右标记为j //一趟排序,找到比基准值大的在基准值右,比基准值小的在基准值左 while(i<j){ //从右往左扫描 while(i<j && array[j]>base){ //从右往左扫,如果元素比基准值大 j--; //则右边标记--,直到找到第一个比基准值小的,停止扫描 } if(i<j){ array[i]=array[j]; //交换右扫描第一个比基准值小的数 i++; //i标记右移一位 } //从左往右扫描 while(i<j && array[i]<base){//从左往右扫,如果元素比基准值小 i++; //则左标记++,直到找到第一个比基准值大的,停止扫描 } if(i<j){ array[j]=array[i]; //交换左扫描第一个比基准值大的数 j--; //j标记左移一位 } } //此时基准值左右两侧相对有序 array[i] = base; //此时i为中间位置k quickSort(array,begin,i-1); //左侧按照快排思路,递归 quickSort(array,i+1,end); //右侧按照快排思路,递归 } }
多维数组
int arrNums[][] = {{12,21,24,42},{34,35,65,76},{32,88,99}}; //访问二维数组的某个元素需要使用array[row][col] System.out.println("访问二维数组:" +arrNums[1][3]); //76 //打印一个二维数组,使用双重for循环 for (int i[] : arrNums){ //System.out.println(Arrays.toString(i)); for (int n:i) { System.out.print(n +"\t"); } System.out.println(); }
记录学习笔记,有其他参考,如有侵权,联系删除
本文来自博客园,作者:rissa,转载请注明原文链接:https://www.cnblogs.com/rissa/p/15338814.html

浙公网安备 33010602011771号