最近在学java的一些基础知识,快速入门或者实践项目都可以看看这个网站 how2j教程,整理得挺好的。
数组是一个固定长度的,包含了相同数据类型的线性容器
目录
一、声明与创建数组
声明数组型变量: 数组类型[ ] 变量名
创建数组: new 数组类型[数组长度]
//声明一个数组
int[] a;
//创建一个长度为 10的数组,将 a指向该数组
a = new int[10];
//声明的同时,指向一个大小为 10的数组
int b[] = new int[15];
(声明数组变量,有时候也写成int a[ ] )
二、数组初始化
分配空间,同时赋值 :
//写法一: 分配空间同时赋值
int[] a = new int[] {2, 3, 5, 7, 11, 13};
//写法二: 省略了new int[],效果一样
int[] b = {2, 3, 5, 7, 11, 13};
三、相关属性与方法
1、获取数组长度(元素个数)
length属性:用于访问一个数组的长度,元素从数组下标 0 开始到 length - 1
int[] a = new int[10];
System.out.println(a.length); //10
四、循环遍历数组
1、for循环
int[] a = new int[10];
for(int i = 0; i < a.length; i++)
System.out.println(a[i]);
2、for each循环 —— 强化型for循环
依次处理数组中的每一个元素,而不必为指定下标而分心。
int[] a = new int[10];
for (int value : a)
System.out.println(value);
注意:此循环只可用于取值,不能修改数组内的值。
五、Arrays工具类
Arrays是针对数组的工具类,可以进行排序,查找,复制填充等功能。 大大提高了开发人员的工作效率。
1、将数组转化为字符串 —— toString 方法
返回一个包含数组元素的字符串,这些数组元素被放置在[ ]内,用逗号分隔。
int[] a = {2, 3, 5, 7, 11, 13};
// [2, 3, 5, 7, 11, 13]
System.out.println(Arrays.toString(a));
2、数组拷贝 —— copyOf 方法
🔺 java允许将一个数组变量拷贝(赋值操作)给另一个数组变量,此时两个变量引用同一个数组。
public class Hello {
public static void main(String[] args) {
int[] a = {2, 3, 5, 7, 11, 13};
int[] b = a;
a[1] = -1;
System.out.println(Arrays.toString(a)); //[2, -1, 5, 7, 11, 13]
System.out.println(Arrays.toString(b)); //[2, -1, 5, 7, 11, 13]
}
}
🔺 如果希望将一个是数组的内容拷贝到一个新的数组中去,且不引用同一个数组,就要使用Arrays.copyOf方法。
public class Hello {
public static void main(String[] args) {
int[] a = {2, 3, 5, 7, 11, 13};
int[] b = Arrays.copyOf(a, a.length);
a[1] = -1;
System.out.println(Arrays.toString(a)); //[2, -1, 5, 7, 11, 13]
System.out.println(Arrays.toString(b)); //[2, 3, 5, 7, 11, 13]
}
}
此法也经常可以用来增加数组长度!
static type copyOf (type[ ] a, int length)
传入参数:待拷贝数组 a,拷贝长度 length。
- length < a.length 只拷贝长度范围内的元素
- length = a.length 完整拷贝
- length > a.length 完整拷贝后再增长数组
--也有局部复制的方法 --
3、数组排序 —— sort 方法
采用优化的快排。
static void Arrays.sort(type[ ] a)
public class Hello {
public static void main(String[] args) {
int[] a = {3, -1, 16, 7, 1, 3};
Arrays.sort(a); //排序
System.out.println(Arrays.toString(a)); // [-1, 1, 3, 3, 7, 16]
}
}
4、集体赋值 —— fill 方法
static void fill(type[ ] a, type v)
将数组的所有元素值设置为v
public class Hello {
public static void main(String[] args) {
int[] a = {3, -1, 16, 7, 1, 3};
Arrays.fill(a, 0);
System.out.println(Arrays.toString(a)); //[0, 0, 0, 0, 0, 0]
}
}
--也有局部赋值的方法 --
5、查找 —— binarySearch 方法
二分法查找。
需要注意的是,使用binarySearch进行查找之前,必须使用sort进行排序
(如果数组中有多个相同的元素,查找结果是不确定的)
static int binarySearc(type[ ] a, type v)
- 查找成功:返回相应的下标值
- 查找失败:返回一个负数
--也有局部查找的方法 --
end
欢迎关注个人公众号“ 鸡翅编程 ”,这里是认真且乖巧的码农一枚。
---- 做最乖巧的博客er,做最扎实的程序员 ----
旨在用心写好每一篇文章,平常会把笔记汇总成推送更新~