class ArrayDemo{
public static void main(String[] args){
int[] arr={5,1,6,4,2,8,9};
int max=getMax(arr);//这个max是类的成员变量
System.out.println("max="+max);
}
public static int getMax(int[] arr)
{
int max = arr[0];//可换成int max = 0;
}
}
}
6.数组的一般查找:获取key第一次出现在数组中的位置。如果返回是-1,那么就代表key在数组中不存在。
class ArrayDemo{
public static void main(String[] args){
int[] arr = {3,6,5,1,8,9,18};
int index=getIndex(arr,5);
System.out.print("index="+index);
}
public static int getIndex(int[] arr,int key)
{
for(int x=0; x<arr.length; x++)
{
if(arr[x]==key)
return x;
}
return -1;
}
}
7.折半查找(二分查找)。提高效率,但是必须要保证该数组是有序的数组。
第一种方法:
class ArrayDemo{
public static void main(String[] args){
int[] arr={1,2,4,6,8,23,46};
int index=halfSearch(arr,23);
System.out.println("index="+index);
}
public static int halfSearch(int[] arr,int key)
{
int min,max,mid;
min = 0;
max = arr.length-1;
mid = (max+min)/2;
while(arr[mid]!=key)
{
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;
}
}
第二种方法:
class ArrayDemo{
public static void main(String[] args){
int[] arr={1,2,4,6,8,23,46};
int index=halfSearch_2(arr,6);
System.out.println("index="+index);
}
public static int halfSearch_2(int[] arr,int key)
{
int min = 0,max = arr.length-1,mid;
while(min<=max)
{
mid = (max+min)>>1;
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
else
return mid;
}
return -1;
}
}
8.进制转换。
**十进制——>十六进制
class ArrayTest5{
public static void main(String[] args){
toHex(60);
}
public static void toHex(int num){
StringBuffer sb = new StringBuffer();
//定义循环,次数是按照32位中4个二进制为为一组
,一共有8组。
for(int x=0; x<8; x++){
int temp = num & 15;//让给定的整数和
15进行&运算
if(temp>9)
//System.out.println((char)(temp-10+'A'));
sb.append((char)(temp-10+'A'));
else
//System.out.println(temp);
sb.append(temp);
num = num >>> 4;//将源数据进行右移4位