导航:首页 > 编程语言 > java数组修改

java数组修改

发布时间:2023-02-15 11:05:16

1. java中如何动态改变数组长度 动态数组 array

java中的数组一旦被定义长度是不允许修改长度的,如果题主希望实现类似的功能可以采用ArrayList。ArrayList的底层结构就是数组。当ArrayList实例化时会默认设置一个长度,当长度不够用时会自动扩展现有长度的1/2.(假设初始数组长度为10,现在变成了15)


System.array(Object src,int srcPos,Object dest,int destPos,int length )能够实现数组复制的功能。

假设有数组a(src),数组b(dest),我们希望把a数组中从下标为2(srcPos)长度为3(length)的元素复制到b的下标为4(destPos)开始的元素中。java代码示例如下:

inta=[1,3,5,7,9];
intb=[2,4,6,8,0,2,4];
System.array(a,2,b,4,3);

//最终b的内容为[2,4,6,8,5,7,9];

但是如果注意API的话会发现array有几个限制

1、a,b的元素类型必须相同(int和Integer这里也是需要区分的)

2、数组不能越界,也就是srcPos+length不能超过a的长度;desPos+length也不能超过b的长度,否则就会报数组越界的一场。这也说明了无法实现数组长度的动态扩展。

2. java使用方法改变数组的值

package com.vortex.test.type;

public class ArrayUtil<E> {

/**
*
* @param arr 需要改变的数组
* @param index 需要改变的下标
* @param newValue 新的值
* E 泛型: 数组对象类型:例如 String、Integer或者自定义对象类型
* @return
*/
public E[] chageValue(E[] arr,int index,E newValue){
try{
arr[index] = newValue;
}catch(Exception e){
System.out.println(e.getMessage());
}
return arr;
}

public static void main(String[] args) {
ArrayUtil<String> au = new ArrayUtil<String>();
String[] arr = {"1","2","3","4"};
System.out.println("修改前");
for(int i=0;i<arr.length;i++){
String val = arr[i];
System.out.println("第"+i+"个元素 为"+val);
}
arr = au.chageValue(arr, 0, "100");
System.out.println("修改后");
for(int i=0;i<arr.length;i++){
String val = arr[i];
System.out.println("第"+i+"个元素 为"+val);
}

ArrayUtil<User> user_au = new ArrayUtil<User>();
User[] user_arr = {new User("张三",22),new User("李四",23),new User("王五",21)};
System.out.println("修改前");
for(int i=0;i<user_arr.length;i++){
User u = user_arr[i];
System.out.println("第"+i+"个元素 name="+u.getName()+" age="+u.getAge());
}
user_arr = user_au.chageValue(user_arr, 0, new User("赵六",25));
System.out.println("修改后");
for(int i=0;i<user_arr.length;i++){
User u = user_arr[i];
System.out.println("第"+i+"个元素 name="+u.getName()+" age="+u.getAge());
}
}

}

class User{
private String name;

private int age;

public User(String name, int age) {
super();
this.name = name;
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

}

3. java怎么重新定义int数组长度

在Java中,数组对象Array的长度是在实例化时就定死了,不能修改。

像你这种情况,一般是新建一个数组,重新设置长度,可能的话再将老数组里的值拷贝进去:

public class ArrayTest {
public static void main(String[] args) {
int[] arr1 = { 1, 2, 3, 4, 5 }; // 初始化一个数组,长度是5(定死了)
int[] arr2 = new int[10];// 重新初始化数组,长度是10;
// 将老数组复制到新数组
for (int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
// 将老数组对象arr1指向新数组
arr1 = arr2;

// 如果不要复制,最简单的就是直接实例化
int[] arr1_1 = new int[5];// 初始化一个数组,长度是5(定死了)
arr1_1 = new int[10]; // 再实例化一次,就是一个新数组,以前数组里的东西就不存在类
}
}


4. 如何java输入数组下标修改数组元素

public static void main(String[] args){
Scanner scanner = new Scanner(System.in);

//下标从0开始 下标0,1,2,3,4,5,6,7,8
int[] intArr =new int[]{1,2,3,4,5,6,7,8,9};

//修改下标为1的元素*10
intArr[1] = intArr[1] * 10;
System.out.println("下标为1的元素修改后的值为" + intArr[1]);
//修改下标为0的元素+10
intArr[0] = intArr[1] + 10;
System.out.println("下标为0的元素修改后的值为" + intArr[0]);

// 修改后的数组
System.out.println("修改后的数组为:");
for(int i=0;i<intArr.length;i++){
System.out.println(intArr[i]);
}
}


阅读全文

与java数组修改相关的资料

热点内容
农村信用社app怎么删除明细 浏览:817
学而思电脑怎么下载app 浏览:107
php防止mysql注入 浏览:233
磁力计校正算法 浏览:491
解压缩后变小了 浏览:957
智友文件夹 浏览:81
android操作系统开发的操作系统 浏览:478
原神手机怎么改b站服务器 浏览:296
桩基箍筋加密区高度规范 浏览:91
手机樱花动漫app怎么用 浏览:382
php科学计数法转换 浏览:642
sip认证算法 浏览:785
androidapp卡顿原因 浏览:905
25编程器电路 浏览:849
安卓九是什么东西 浏览:939
隐藏nodejs命令行窗口 浏览:62
人体与写生素描pdf 浏览:883
java集合性能 浏览:143
单片机三线通信 浏览:209
昆山ug编程培训学费 浏览:628