4-6深入数组
4.6深入数组
数组是引用类型,数组变量和数组元素在内存中是分开存放的。
4.6.1内存中的数组
真正的数组对象在堆内存中,而数组变量在栈中。
数组的长度是不可变的,但是可以将另一个数组赋给原来的数组变量,这样就发生了长度变化(的假象)。
public class ArrayInman |
4.6.2基本类型数组的初始化
先动态初始化,再依次赋值
public class PrimitiveArrayTest |
4.6.3引用类型的数组初始化
所有的类都是引用类型。
class Person |
4.6.4没有多维数组
逻辑上存在多维数组,但在内存中不存在。下面演示一个二维数组的例子。
public class TwoDimensionTest |
4.6.5 Java8的增强工具类:Arrays
Arrays 类里均为 static 修饰的方法(static 修饰的方法可以直接通过类名调用),可以直接通过
Arrays.xxx(xxx)
的形式调用方法。
查找索引
-
int binarySearch(type[] a, type key)
:二分法查询key
在a
中出现的索引。不存在返回负数。- 升序数组
-
int binarySearch(type[] a, int fromIndex int tolndex, type key)
:这个方法与前一个方法类似,但它只搜索数组中从fromIndex
到toIndex
索引的元素。
复制数组
-
type[] copyOf(type[] original, int ength)
:复制数组前n个元素。数组不够则补充默认值。 -
type[] copyOfRange(type[] original, int from, int to)
: 这个方法与前面方法相似,但这个方法只复制original
数组的from
索引到to
索引的元素。
比较数组
-
boolean equals(type[] a, type[] a2)
: 两个数组长度和元素一致返回true
批量填充
-
void fill(type[] ,type val)
: 该方法将会把 数组的所有元素都赋值为val
-
void fill(type[] a, int fromIndex, int tolndex, type val)
: 该方法与前一个方法的作用相同,区别只是该方法仅仅将数组的fromlndex
到tolndex
索引的数组元素赋值为val
排序
-
void sort(type[] a)
: 该方法对 数组的数组元素进行排序。 -
void sort(type[] a, int fromIndex ,int toIndex)
: 该方法与前一个方法相似,该方法仅仅对fromlndex
到toIndex
索引的元素进行排序。
转字符串
-
String toString(type[] a)
: 该方法将一个数组转换成字符串。该方法按顺序将多个数组元素连缀在一起,多个数组元素使用英文逗号(,)和空格隔开。
案例
import java.util.*; |