数组-应用(作为关系映射表,作为临时容器)

数组-应用(作为关系映射表,作为临时容器)

前言:学习编程也有不短的时间了,不论是C++还是Java,都有着数组的运用。但是数组在什么时候使用,从来没有考虑过,或者说认为使用顺其自然。可实际开发中,常常无法想起数组,而绞尽脑汁另辟蹊径。后来通过了解,获知数组的两个实用方向。让数组作为关系映射表,称为查表法。数据多时,存储起来,让数组作为临时容器。

 

一、数组作为关系映射表。

如果数据出现了对应关系,而且对应关系的一方是有序的数字编号。并作为角标使用。这时就必须要想到数组的使用。

可以将这些数据存在数组中。

根据运算的结果作为角标直接去查数组中对应的元素即可。

这种方法:称为查表法。

 

二、数组作为临时容器。

数据一多,就先存储起来。

 

  1. /*
  2. 实际开发中,Java提供了内置函数。
  3.  
  4. Integer.toBinaryString(int i);
  5. Integer.toOctalString(int i);
  6. Integer.toHexString(int i).toUpperCase();
  7.  
  8. 在本函数中写道的内容中,没有转换成字符串。
  9. 对于理解数组的 查表法 和 临时变量。
  10. */
  11.  
  12. class ArrayTest
  13. {
  14.    public static void main(String[] args)
  15.    {
  16. //    toHex(26);
  17.       toBinary(-6);
  18. //    toOctal(26);
  19.       System.out.println(Integer.toBinaryString(-6));
  20.    }
  21.  
  22.    //十进制-->十六进制。
  23.    public static void toHex(int num)
  24.    {
  25.       trans(num,15,4);
  26.    }
  27.    //十进制-->二进制。
  28.    public static void toBinary(int num)
  29.    {
  30.       trans(num,1,1);
  31.    }
  32.    //十进制-->八进制。
  33.    public static void toOctal(int num)
  34.    {
  35.       trans(num,7,3);
  36.    }
  37.  
  38.    public static void trans(int num,int base,int offset)
  39.    {
  40.  
  41.       if(num==0)
  42.       {
  43.         System.out.println("0");
  44.         return ;
  45.       }
  46.       //定义一个对应关系表。
  47.       char[] chs = {'0','1','2','3',
  48.            '4','5','6','7',
  49.            '8','9','A','B',
  50.            'C','D','E','F'};
  51.       /*
  52.       一会查表会查到比较的数据。
  53.       数据一多,就先存储起来,在进行操作。
  54.       所以定义一个数组。 临时容器。
  55.       */
  56.       char[] arr = new char[32];
  57.       int pos = arr.length;
  58.  
  59.       while(num!=0)
  60.       {
  61.         int temp = num & base;
  62.         arr[--pos] = chs[temp];
  63.         num  = num >>>offset;
  64.       }
  65.  
  66.       for(int x=pos ;x<arr.length; x++)
  67.       {
  68.         System.out.print(arr[x]);
  69.       }
  70.       System.out.println();
  71.  
  72.    }
  73.  
  74. }

 

 

 

如有好的建议,可留言或发至笔者邮箱:fzb_xxzy@163.com

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值