一.关于Array
1.Array概述
①Java中的数组,是一种简单的线性数据存储结构,用来存储固定大小的同类型元素。数组类型可以是任何数据类型,可以存储基本数据类型和引用类型。
②数组一旦被创建,它的长度就是不可以改变的(final)。数组对象中的length属性保存了数组的长度,并且是public常量可以直接引用。
length属性:用于求String字符串数组的长度(数组中有多少个字符串)
length()方法:用于求String字符串对象的长度(对象中字符的个数)
③索引运算符自动执行数组边界检查,保证引用一个数组元素的索引值在有效范围内,索引值必须[0, length-1],否则会抛出ArrayIndexOutOfBoundsException。
④数组变量属引用类型,存放在栈内,而实际数组属于对象,存放在堆内存中。
数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中存储的。
⑤数组用牺牲自动扩展大小来换取与集合相比的唯一优势——查询效率的提升。它本身是一种引用类型的数据,所以我们要使用数组就要首先声明和初始化,而它初始化的完成也就意味着此数组的大小将不再改变。
2.Array的常用方法
- 声明数组;
- 初始化数组;
- 遍历数组;for(int temp: a)
- 拷贝数组;System.arraycopy(a,0,b,0,6)
- 复制数组;Arrays.copyOf(a)返回新数组
- 打印数组;Arrays.toString(a)
- 填充数组; Arrays.fill(a, , ,key)
- 排序数组;Arrays.sort(a,0,6)
- 二分法查找;Arrays.binarySearch(a,key)
- 比较数组;Arrays.equals(a,b)
- 包含某一个值;Arrays.asList(a).contains(b)
- 转成arraylist;ArrayList al = new ArrayList(Arrays.asList(a));
- 转成set集合; Set set= new HashSet(Arrays.asList(a));
- 转成list集合;List list=java.util.Arrays.asList(a)
- 去重复;.
1.声明数组;
//声明数组变量引用,必须指明数组大小
String[] array=new String[5];
int score[]=new int[3];
2.初始化数组;
//静态初始化—数组大小由系统分配,我们直接在定义数组的同时为元素分配空间和赋值。(基本数据类型数组和引用数据类型数组)
int a1[]=new int[]{1,2,3,4,5};
int a2[]={1,2,3,4,5};
String[] a2=new String[]{"约定","的","梦幻岛"};
String[] a1={"约定","的","梦幻岛"};
Man[] mans = { new Man(01,a),
new Man(02,b) }
//动态初始化—先定义数组和分配空间,再赋值。
int score[]=new int[3];//只指定数值的大小,初始化工作系统完成
for(int i=0;i<score.length;i++){
score[i]=i+1;
}
score[0]=1;
score[1]=2;
//默认初始化—数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化
int a[] = new int[2]; // 默认值:0,0
boolean[] b = new boolean[2]; // 默认值:fa