1、Array类与Arrays类?
Array类提供提供静态方法来动态创建和访问 Java数组的方法。
Arrays类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。
2、Array类的方法
-
-
static Object
get(Object array, int index)
返回指定数组对象中的索引组件的值。
static void
set(Object array, int index, Object value)
将指定数组对象的索引组件的值设置为指定的新值。
static Object
newInstance(类 componentType, int... dimensions)
创建具有指定组件类型和尺寸的新数组。
static Object
newInstance(类 componentType, int length)
创建具有指定组件类型和长度的新数组。
static boolean
getBoolean(Object array, int index)
返回指定数组对象中的索引组件的值,如
boolean
。getXXX八大基本类型
static void
setBoolean(Object array, int index, boolean z)
将指定数组对象的索引组件的值设置为指定的
boolean
值。setXXX八大基本类型
-
数组是引用数据类型,数组其实是对象。所以可以在 Array类中吧数组作为对象处理数组中的元素。
3、通过 反射和 Array类中的方法实现 System.arraycopy() 数组拷贝
实现Demo
public class ArrayDemo {
public static void main(String[] args) {
int[] src = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int[] dest = new int[10];
System.out.println(Arrays.toString(dest)); //[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
arraycopy(src, 4, dest, 3, 5);
System.out.println(Arrays.toString(dest)); //[0, 0, 0, 5, 6, 7, 8, 9, 0, 0]
}
/**
* 实现 System类中,数组拷贝的arraycopy方法
* @param src - 源数组
* @param srcPos - 源数组中的起始位置。
* @param dest - 目标数组。
* @param destPos - 目的地数据中的起始位置。
* @param length - 要复制的数组元素的数量。
*/
public static void arraycopy(Object src, int srcPos, Object dest,int destPos, int length) {
if (src == null || dest == null) {
throw new NullPointerException("源数组和目标数组不能为空");
}
if (!src.getClass().isArray() || !dest.getClass().isArray()) {
throw new ArrayStoreException("源和目标必须都是数组");
}
if (srcPos < 0 || destPos < 0 || srcPos + length > Array.getLength(src)
|| destPos + length > Array.getLength(dest)) {
throw new IndexOutOfBoundsException("索引越界");
}
if (src.getClass().getComponentType() != dest.getClass()
.getComponentType()) {
throw new ArrayStoreException("源数组和目标数组类型要一致");
}
for (int index = srcPos ; index
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?