黑马程序员 3 Java基础语法拾遗 二
1、函数
静态域,static;
常量池,存放常量。
(7)重载:同名函数,参数个数或者类型相同即可,与返回值类型无关,与参数类型有关。如果 函数出现不确定性,出错。
*绘画矩形函数:
public static void draw(int w, int h){ for(int i= w;i>0;i--) System.out.print(‘*‘); System.out.println(); for(int i= h-2;i>0;i--){ System.out.print(‘*‘); for(int j=w-2;j>0;j) System.out.print(‘*‘); System.out.println(); }
public static void add(int a ,int b){ System.out.println(a+"+"+b+"="+(a+b)); } public static void add(double a ,double b){ System.out.println(a+"+"+b+"="+(a+b)); } public static void add(String a ,String b){ System.out.println(a+"+"+b+"="+(a+b)); }
元素类型[] 数组名 = new 元素类型[]{元素,元素,……};(int[] arr = {x,x,x,……})
(4)数组操作:
a 遍历:
//遍历数组 public static void printArray(int[] arr){ //遍历数组输出 for(int i=0;i<arr.length;i++){ System.out.print(arr[i]+" "); } System.out.println(); }
b 排序:
//改进的选择排序 for(int i=0;i<arr.length-1;i++){ int index = i; int num = arr[i]; for(int j=i+1;j<arr.length;j++){ if(num <arr[j]){ num = arr[j]; index = j; } } if(index != i){ int temp = arr[index]; arr[index] = arr[i]; arr[i] = temp; } }
2)冒泡排序(内循环,-1为了避免角标越界,-x,为了让外循环增加一次内循环与比较的个数递减):
public static void bubbleSort(int[] arr){ for(int i = 0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ /*错误的代码,前后交换对象不对 int temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; */ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } }
c、查找:
//查找 public static int getIndex(int[] arr,int key){ for(int i=0;i<arr.length;i++){ if(arr[i]==key){ return i; } } return -1; }
//折半查找 public static int binarySearch(int[] arr,int key){ int upper = arr.length-1; int lower = 0; int mid; while(upper>=lower){ mid = (upper+lower)>>1; if(arr[mid]>key) upper = mid-1; else if(arr[mid]<key) //这里丢了else,导致查找失败时异常 lower = mid+1; else return mid; //输出查找过程 //System.out.print("["+mid+"]"); } return -1; }
*面试题:给定一个数组,如果存住一个元素,保证还是有序的,那么其角标如何获取。
public static int insertIndex(int[] arr,int key){ int upper = arr.length-1; int lower = 0; int mid; while(lower<=upper){ mid = (upper+lower)>>1; if(arr[mid]>key) upper = mid-1; else if(arr[mid]<key) lower = mid+1; else return mid; }
* 引用变量无指向 NullPointerException
* 直接打印数组名时会打印:[]@e32df3“实体类型@hashcode”
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。