一元数组与二元数组

来源:互联网 发布:投诉淘宝消协投诉电话 编辑:程序博客网 时间:2024/06/10 09:11

一元数组

数组的声明

1,类型 [] 数组名
2,类型 数组名 []

分配空间

数组名=new 类型 [长度];

注意:1,2步可以合在一起写
    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();
   }

数组使用小练习:

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;

  System.out.println("arr[0] = " + arr[0]);
  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]);

  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]);

 }

}


进制转换

  1. import java.awt.print.Printable;  
  2. import java.util.Arrays;  
  3. import java.util.Scanner;  
  4.   
  5. import javax.swing.text.DefaultEditorKit.InsertBreakAction;  
  6.   
  7. import org.omg.CosNaming.NamingContextExtPackage.AddressHelper;  
  8.   
  9. /* 需求:  
  10.  * 获取一个整数的X进制的表现形式  
  11.  * */  
  12. public class Main   
  13. {  
  14.     public static void main(String[] args)  
  15.     {  
  16.         Scanner cin = new Scanner(System.in);  
  17.         int num = cin.nextInt();  
  18.           
  19.         int ary[] = new int[8];  
  20.         getx(num,ary,15,4);//16进制  
  21.         System.out.println("16进制表现形式如下:");  
  22.         print(ary);  
  23.           
  24.         int bry[] = new int[12];  
  25.         int num1 = cin.nextInt();  
  26.         getx(num1,bry,7,3);//8进制  
  27.         System.out.println("8进制表现形式如下:");  
  28.         print8(bry);  
  29.           
  30.           
  31.         System.out.println("6的2进制表现形式如下:");  
  32.         System.out.println(Integer.toBinaryString(6));  
  33.         System.out.println("-6的2进制表现形式如下:");  
  34.         System.out.println(Integer.toBinaryString(-6));  
  35.       
  36.         cin.close();  
  37.     }  
  38.     public static void print(int[] ary)  
  39.     {  
  40.         int i;  
  41.         for(i = 7;i>=0;i--)  
  42.         {  
  43.             if(ary[i]!=0)  
  44.                 break;  
  45.         }  
  46.         for(int j = i;j>=0;j--)  
  47.         {  
  48.             if(ary[j]>9)  
  49.             switch (ary[j])   
  50.             {  
  51.             case 10:System.out.print("A");  
  52.                 break;  
  53.             case 11:System.out.print("B");  
  54.             break;  
  55.             case 12:System.out.print("C");  
  56.             break;  
  57.             case 13:System.out.print("D");  
  58.             break;  
  59.             case 14:System.out.print("E");  
  60.             break;  
  61.             case 15:System.out.print("F");  
  62.             break;  
  63.             default:  
  64.                 break;  
  65.             }  
  66.             else {  
  67.                 System.out.print(ary[j]);;  
  68.             }  
  69.               
  70.         }  
  71.         System.out.println();  
  72.     }  
  73.     public static void print8(int bry[])  
  74.     {  
  75.         int i;  
  76.         for(i = 10;i>=0;i--)  
  77.         {  
  78.             if(bry[i]!=0)  
  79.                 break;  
  80.         }  
  81.         for(int j = i;j>=0;j--)  
  82.         {  
  83.             System.out.print(bry[j]);  
  84.         }  
  85.         System.out.println();  
  86.     }  
  87.      public static void getx(int num,int ary[],int mod,int wz)  
  88.     {  
  89.         int l = 0;  
  90.       
  91.         for(int i = 0;i<8;i++)  
  92.         {  
  93.             int t = num & mod;//16进制的最大值  
  94.             ary[l++] = t;  
  95.             num = num >>> wz;//4个二进制位表示一个16进制位  
  96.         }  
  97.     }  
  98. }  

二维数组:

int arr[][] = new int[3][2];//数组初始null,元素的初始值都是0  

这个二维数组,这个二维数组中有3个一维数组,每个一维数组有2个元素

  1. int arr[][] = new int[4][];  
  2.   
  3.   
  4. arr[0] = new int[5];  
  5. arr[1] = new int[3];  
  6. arr[2] = new int[8];  
  7. arr[2] = new int[1];  

这个二维数组,有4个一维数组,数组[0] 中有5个元素,数组[1] 中有3个元素.....


打印二维数组中的下标为1的一维数组的下标为1的元素:System.out.print(arr[1][1]);


原创粉丝点击