Chapter 6 方法
生成随机字符
0<= Math.random<1
char型操作数与数字或字符运算,那么char型操作数会被转换成数字
|
|
输出如下:
Chapter 7 一维数组
声明数组
|
|
不同于基本数据类型变量的声明,声明一个数组变量时并不在内存中给数组分配任何空间。它只是创建一个对数组的引用的存储位置。如果变量不包含对数组的引用,那么这个变量的值为null
初始化
|
|
随机打乱
|
|
数组的复制
list2 = list1
该句并不能将list1引用的数组内容复制给list2,而只是将list1的引用值复制给了list2
即将一个数组变量赋值给另一个数组变量,实际上是将一个数组的引用复制给另一个变量,使得两个变量都指向相同的内存地址

复制数组有三中方法
1)使用循环语句逐个地复制数组的元素
2)使用System类的静态方法arraycopy
3)使用clone方法复制数组
比如使用arraycopy
arratcopy(sourceArray, srcPos, targetArray, tarPos, length
其中参数srcPos和tarPos分别表示在原数组sourceArray和目标数组targetArray的起始位置,复制的元素个数由参数length指定
将数组传递给方法
使用匿名数组
注意:
传递基本数据类型值与传递数组引用变量给方法的不同之处
两种swap方法
|
|
使用swap方法诶能交换两元素。但是,使用swapFirstTwoInArray方法就实现了对换。因为调用swap(a[0], a[1])时,a[0]和a[1]的值传给了方法内部的n1和n2。n1和n2的内存位置独立于a[0]和a[1]的内存位置。这个方法的调用没有影响数组的内容

反转数组
|
|
二分查找
|
|
Arrays类
在引入java.util.Arrays之后
Sort
对数组进行升序排列
|
|
这里array为上面数组的引用,如果计算机有多个处理器,那么parallelSort将更加有效
对数组进行降序排列
|
|
为了对java数组实现降序排序,你需要提供一个外部的Comparator
来对元素按相反的顺序排序。
不过,java的api中给我们提供了java.util.Collections.reverseOrder()方法,该方法返回一个与自然顺序相反的comparator。将这个comparator作为参数传给sort方法,就可以实现降序排序了。(不过好像int的基础类型的不可以,String类型的没问题,T[])
当然也可以先将数组转换为ArrayList,然后调用ArrayList的reverse()方法,再转换为数组。不过最好还是使用Arrays.sort()方法。
对数组中的子数组进行排列
|
|
Arrays类提供了对数组的部分元素进行排序的方法。例如,你可能有一个很多的数组,而你只需要对于特定的一段进行排序,那么可以使用java.util.Arrays.sort(array,index,index) ,它只会对指定范围内的元素进行排序。这比对整个数组进行排序要快。
binarySearch
在数组中查找关键字。数组必须提前按升序排列好。如果数组中不存在关键字,方法返回-(插入点下标+1)
equals
equals方法检测两个数组是否相等。如果内容相同,那么这两个数组相等
fill
fill方法填充整个数组或部分数组
toString
使用toString方法返回一个字符串,该字符串代表了数组中的所有元素
其他
将数组参数传递给方法时,实际上传递的是数组的医用;更准确地说,被调用的方法可以修改调用者的原始数组的元素。