黑马程序员_学习笔记第4天——数组
来源:互联网 发布:金山软件客服电话 编辑:程序博客网 时间:2024/06/05 03:41
---------------------- ASP.Net+Android+IOS开发、href="http://edu.csdn.net"target="blank">.Net培训、期待与您交流! ----------------------
12、二维数组
1、数组中有一个属性可以直接获取到数组元素个数:length
使用方式:数组名称.length
2、存在两种RunntimeException
ArrayIndexOutOfBoundsException 数组角标越界异常
NullPointerException 空指针异常
3、数组的遍历操作
int[] arr = new int [3];for(int x= 0;x<arr.length;x++){sop("arr["+x+"]="+arr[x]+";");}
4、打印方法
public static void print(int[] arr) {System.out.print("[");for (int x = 0; x<arr.length; x++) {if (x!=arr.length-1)System.out.print(arr[x]+",");else System.out.print(arr[x]);}System.out.println("]");}
5、获取数组中的最值
最大值:
public static void getMax(int[] arr) {int max=arr[0];for (int x=1;x<arr.length;x++) {if (arr[x]>max) {max = arr[x];}}System.out.println(max);}
第二种方法
public static void getMax2(int[] arr) {int max=0;for (int x=1;x<arr.length;x++) {if (arr[x]>arr[max]) {arr[max] = arr[x];}}System.out.println(arr[max]);}
最小值 改变下符号即可
6、选择排序和冒泡排序
选择排序:
public static int[] selectSort(int arr[]) {for (int x = 0; x<arr.length-1 ; x++){for (int y = x+1; y<arr.length ; y++){if (arr[x]>arr[y]) {int temp=arr[x];arr[x]=arr[y];arr[y]=temp;}}}return arr;}
冒泡排序:
public static int[] bubbleSort(int arr[]){for (int x = 0; x<arr.length -1; x++) {for ( int y = 0 ; y<arr.length-x-1; y++) {if (arr[y]>arr[y+1]) {int temp = arr[y];arr[y] = arr[y+1];arr[y+1] = temp;}}}return arr;}
7、查找数组中第一次出现的目标值的角标
public static int getIndex(int[] arr, int key) {for (int x =0; x<arr.length; x++) {if (arr[x]==key) {return x;}}return -1;}
8、折半查找
public static int halfSearch(int[] arr ,int key) {int min=0, max=arr.length-1,mid;while(min<=max) {mid=(max+min)/2;if (key>arr[mid]) min=mid+1;else if (key<arr[mid]) max=mid-1;else return mid;}return -1;}
方法二:
public static int halfSearch_2(int[] arr ,int key) {int min=0, max=arr.length-1,mid=(max+min)/2;while(key!=arr[mid]) {if (key>arr[mid]) min=mid+1;else if (key<arr[mid]) max=mid-1;if(min>max) return -1;mid=(max+min)/2;}return mid;}
9、十进制转二进制
public static void toBin(int num) {StringBuffer sb = new StringBuffer();while (num > 0) {sb.append(num%2);num = num/2;}System.out.println(sb.reverse());}
10、用查表法十进制转十六进制
public static void toHex_2(int num) {char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};char[] arr = new char[8];int pos = arr.length;while (num!=0) {int temp = num & 15;arr[--pos] =chs[temp];num = num>>>4;}System.out.println("pos="+pos);for(int x=pos;x<arr.length; x++) {System.out.print(arr[x]+",");}}
11、十进制转成任意进制
public static void trans(int num, int base, int offset) {if(num == 0) {System.out.println(0);return;}char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};char[] arr = new char[32];int pos = arr.length;while (num!=0) {int temp = num & base;arr[--pos] = chs[temp];num = num>>>offset;}for (int x = pos; x<arr.length; x++) {System.out.print(arr[x]);}}
12、二维数组
int[][] arr = new int[3][2];
arr.length;//打印的是二维数组的长度
arr[0].length;//打印的是二维数组中的第一个一维数组的长度
三种定义方式:
int[][] x; int x[][]; int[] x[];
若定义int[]x,y[]; 则x是一维的,y是二维的
- 黑马程序员_学习笔记第4天——数组
- 黑马程序员_学习笔记第1天——dos
- 黑马程序员_学习笔记第2天——运算符、语句
- 黑马程序员_学习笔记第3天——for、while、函数
- 黑马程序员_学习笔记第5天——面向对象
- 黑马程序员_学习笔记第13天——String类
- 黑马程序员_学习笔记第11天——多线程1
- 黑马程序员_学习笔记第6天——静态、单例
- 黑马程序员_学习笔记第8天——多态
- 黑马程序员_学习笔记第9天——内部类、异常
- 黑马程序员_学习笔记第10天——异常、包
- 黑马程序员_学习笔记第12天——多线程2
- 黑马程序员_学习笔记第14天——Collection集合
- 黑马程序员_学习笔记第15天——TreeSet、泛型
- 黑马程序员_学习笔记第16天——Map集合
- 黑马程序员_学习笔记第17天——Collections、jdk1.5新特性
- 黑马程序员_学习笔记第18天——IO流、字符流
- 黑马程序员_学习笔记第19天——缓冲区、转换流、字节流
- IOS学习之路(二十五)UIView动画,弹出后移动然后消失
- Java简介
- Openstack源代码分析之Eventlet
- 多线程
- 丢失全部控制文件后从RMAN备份集中恢复示例
- 黑马程序员_学习笔记第4天——数组
- 有关名字的测试
- 常见API
- 【心情】try to be myself
- 写文件流报:java.io.FileNotFoundException.....\img (拒绝访问。)的问题真正病根
- autocad2013使用心得
- ubuntu下编译 jrtplib-3.9.1 和 jthread - 1.3.1
- getchar用法
- maven环境下debug代码