一元数组
数组的声明
1,类型 [] 数组名
2,类型 数组名 []
分配空间
数组名=new 类型 [长度];
注意:1,2步可以合在一起写
char cs[]=new char[5];
char cs[]=new char[5];
数组赋值
数组名 [下标]=数值;
例如:
cs[0]=1;
cs[1]=2;
......
or
int[] arr = new int[]{1,1,1,1,1,1};
or
类型 [] 数组名={值,值,......};
变形:
Scanner sc=new Scanner(System.in);
for(int i=0;i<cs.length;i++){
cs[i]=(char)sc.nextByte();
}
Scanner sc=new Scanner(System.in);
for(int i=0;i<cs.length;i++){
cs[i]=(char)sc.nextByte();
}
数组使用小练习:
package pp;
public class p {
public static void main(String[] args) {
// TODO Auto-generated method stub
// int[] arr = new int[]{1,1,1,1,1,1};
int[] arr = new int[5];
int[] b = new int[5];
arr[0] = 5;
b[0] = 6;
b[3] = 15;
// TODO Auto-generated method stub
// int[] arr = new int[]{1,1,1,1,1,1};
int[] arr = new int[5];
int[] b = new int[5];
arr[0] = 5;
b[0] = 6;
b[3] = 15;
System.out.println("arr[0] = " + arr[0]);
System.out.println("arr[3] = " + arr[3]);
System.out.println("arr[3] = " + arr[3]);
arr = b;// 更改arr的指向
System.out.println("arr[0] = " + arr[0]);
System.out.println("arr[3] = " + arr[3]);
System.out.println("b[3] = " + b[3]);
System.out.println("b[0] = " + b[0]);
System.out.println("arr[3] = " + arr[3]);
System.out.println("b[3] = " + b[3]);
System.out.println("b[0] = " + b[0]);
b = null;// b无指向
System.out.println("arr[0] = " + arr[0]);
System.out.println("arr[3] = " + arr[3]);
// System.out.println("b[3] = "+b[3]);//以视为垃圾
// System.out.println("b[0] = "+b[0]);
System.out.println("arr[3] = " + arr[3]);
// System.out.println("b[3] = "+b[3]);//以视为垃圾
// System.out.println("b[0] = "+b[0]);
}
}
进制转换
- import java.awt.print.Printable;
- import java.util.Arrays;
- import java.util.Scanner;
- import javax.swing.text.DefaultEditorKit.InsertBreakAction;
- import org.omg.CosNaming.NamingContextExtPackage.AddressHelper;
- /* 需求:
- * 获取一个整数的X进制的表现形式
- * */
- public class Main
- {
- public static void main(String[] args)
- {
- Scanner cin = new Scanner(System.in);
- int num = cin.nextInt();
- int ary[] = new int[8];
- getx(num,ary,15,4);//16进制
- System.out.println("16进制表现形式如下:");
- print(ary);
- int bry[] = new int[12];
- int num1 = cin.nextInt();
- getx(num1,bry,7,3);//8进制
- System.out.println("8进制表现形式如下:");
- print8(bry);
- System.out.println("6的2进制表现形式如下:");
- System.out.println(Integer.toBinaryString(6));
- System.out.println("-6的2进制表现形式如下:");
- System.out.println(Integer.toBinaryString(-6));
- cin.close();
- }
- public static void print(int[] ary)
- {
- int i;
- for(i = 7;i>=0;i--)
- {
- if(ary[i]!=0)
- break;
- }
- for(int j = i;j>=0;j--)
- {
- if(ary[j]>9)
- switch (ary[j])
- {
- case 10:System.out.print("A");
- break;
- case 11:System.out.print("B");
- break;
- case 12:System.out.print("C");
- break;
- case 13:System.out.print("D");
- break;
- case 14:System.out.print("E");
- break;
- case 15:System.out.print("F");
- break;
- default:
- break;
- }
- else {
- System.out.print(ary[j]);;
- }
- }
- System.out.println();
- }
- public static void print8(int bry[])
- {
- int i;
- for(i = 10;i>=0;i--)
- {
- if(bry[i]!=0)
- break;
- }
- for(int j = i;j>=0;j--)
- {
- System.out.print(bry[j]);
- }
- System.out.println();
- }
- public static void getx(int num,int ary[],int mod,int wz)
- {
- int l = 0;
- for(int i = 0;i<8;i++)
- {
- int t = num & mod;//16进制的最大值
- ary[l++] = t;
- num = num >>> wz;//4个二进制位表示一个16进制位
- }
- }
- }
二维数组:
int arr[][] = new int[3][2];//数组初始null,元素的初始值都是0
这个二维数组,这个二维数组中有3个一维数组,每个一维数组有2个元素
- int arr[][] = new int[4][];
- arr[0] = new int[5];
- arr[1] = new int[3];
- arr[2] = new int[8];
- arr[2] = new int[1];