关于数组、函数的碎片知识。
数组定义
数组这个东西十分有趣,它的定义是相同类型的一组数据集变量。
在Java中,它能够这样被定义:
1 | int n = 5; |
c++中了解到,数组的本质是指针,而Java里面并没有指针的强类型概念,但分配空间的规则仍旧是一样的。即当定义一个数组时需要:
* 数据类型(int)
* 数组名称(a)
* 数组 长度 (n=5)
我们在使用数组时,用下标来获取、赋予内容,如a[0]=a[1]===a[n-4]?a[4]:a[0];
一些算法
算法问题是个 玄学 ,希望哪天也能写出一段连自己都不知道怎么回事的代码并标上//神奇代码,勿动
。
查找
二分查找(binary search)
需要已排序的数组array。
1 | public static int biSearch(int [] array, int a){ |
冒泡排序(bubble sorting)
1 | public static void BubbleSorting(int[] array){ |
API有话说
JDK API几乎把所有的Java自带特性讲了个遍,这里需要了解一个名词:重载。函数重载可使函数的 参数 变得更多样。
上文提及的算法大部分都能由Java Utility Package中Arrays类的 静态函数 更加快速、低占用地实现。
1 | Arrays.binarySearch(T[] origin, T key); //return the key number |
以及Array类型的数据自带一些属性,著名的是·length
。
函数
参阅作用域。
一个函数会构建一个AO作用域,为其分配 独立 空间。
1 | [public|private] <static> T arg(..T args){ |
上面这就是一个挂在类里面的函数,可以闭包、重用。
最近好像函数式编程挺火的,可以了解一下。