1、一维数组 输出
/*
输出数组
*/
class ArrayDemo1
{
public static void main(String[] args)
{
//int [] arr = new int[5];
int [] arr={1,2,3,4,5,6};
System.out.println(arr[1]);
System.out.println("arr["+0+"]="+arr[0]+";"); //arr[0]=1;
//遍历
/*
int sum=0;
for (int x=0;x<arr.length ;x++ )
{
sum+=arr[x];
System.out.println("arr["+x+"]="+arr[x]+";");
}
*/
//print elements
printArray(arr);
}
public static void printArray(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]+"]");
}
}
}
2、二维数组求和
/*
数组求和
*/
class Array2Demo
{
public static void main(String[] args)
{
//int[] arr=new int[3]; //一维数组
//int[][] arr = new int[2][3]; //二维数组,2行3列
//System.out.println(arr[0][1]);
/*
int[][] arr=new int[3][];
arr[0]= new int[3];
arr[1]=new int[1];
arr[2]=new int[2];
System.out.println(arr.length);
System.out.println(arr[0].length);
*/
int[][] arr = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int sum=0;
for (int x=0;x<arr.length ;x++ )
{
for (int y=0;y<arr.length ;y++ )
{
sum =sum+arr[x][y];
}
}
System.out.println("sum="+sum);
}
}
3、获取最大值最小值、重载
/*
get the max,min of a array.
*/
class ArrayTest
{
public static void main(String[] args)
{
int [] arr={1,3,2,5,9};
double[] dou={1.2,3.4,1.5};
double d_max=getMax(dou);
System.out.println("d_max="+d_max);
//overload
int max = getMax(arr);
System.out.println("max="+max);
getMin(arr);
boolean[] ar =new boolean[2];
System.out.println("arr[0]="+arr[0]);
}
//function
public static int getMax(int [] arr)
{
int max = arr[0];
for (int x=0;x<arr.length ;x++ )
{
if(arr[x]>max)
max = arr[x];
}
return max;
}
//功能一致时,可用重载 overload
public static double getMax(double [] arr)
{
double max = arr[0];
for (int x=0;x<arr.length ;x++ )
{
if(arr[x]>max)
max = arr[x];
}
return max;
}
//min
public static void getMin(int [] arr)
{
int min =0;
for(int x=1;x<arr.length;x++)
{
if (arr[x]<arr[min])
min =x;
}
System.out.println("min="+arr[min]);
}
}
4、进制转换
(1)
class ArrayTest2
{
public static void main(String[] args)
{
//toBin(6);
toHex(60);//3c
}
//十进制-->二进制
public static void toBin(int num)
{
StringBuffer sb = new StringBuffer();
while(num>0)
{
sb.append(num%2);
num = num/2;
}
System.out.println(sb);
System.out.println(sb.reverse());
}
/*
十进制-->十六进制
*/
public static void toHex(int num)
{
StringBuffer sb = new StringBuffer();
for (int x=0;x<8 ;x++ )
{
int temp = num&15;
if (temp>9)
//System.out.println(char(temp-9+'A'));
sb.append((char)(temp-10+'A'));
else
//System.out.println(temp);
sb.append(temp);
num = num >>> 4;
}
System.out.println(sb.reverse());
}
}
(2)
class ArrayTest3
{
public static void main(String[] args)
{
toHex(60);
}
/*
查表法 十进制-->十六进制
去反,可用StringBuffer 容器的reverse
*/
public static void toHex(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]; // '\u0000' 表示空位
/*
次法正负均无限制
*/
int pos = arr.length;
while (num!=0)
{
//for (int x=0;x<8 ;x++ ) //8个固定四位,若只移动有效位,可节约时间
int temp =num&15;
//System.out.println(chs[temp]);
arr[--pos] = chs[temp];
num = num >>>4;
}
//存储数据的arr数组遍历
for (int x=pos;x<arr.length;x++ ) // 从有效位开始取出数据
{
System.out.print(arr[x]+",");//3C
}
}
}
(3)升级版
class ArrayTest4
{
public static void main(String[] args)
{
//toBin(6);
toHex(60);
//toBa(-60);
}
/*
十进制-->二进制
*/
public static void toBin(int num)
{
trans(num,1,1);
}
/*
十进制-->十六进制
*/
public static void toHex(int num)
{
trans(num,15,4);
}
/*
十进制-->八进制
*/
public static void toBa(int num)
{
trans(num,7,3);
}
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]);
}
}
}
5、
6、