当前位置:首页 » 编程语言 » java数组修改

java数组修改

发布时间: 2023-04-07 15:20:16

java 更改数组内容

public class R {
public static void main(String[] args) {
int[] i = {1,2,3,4,5};
i[1]=9;
for(int j=0;j<i.length;j++)
System.out.print(i[j]+" ");
}
}
运行结胡塌果裤枣圆岩脊:
1 9 3 4 5

② 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]; // 再实例化一次,就是一个新数组,以前数组里的东西就不存在类
}
}


③ 为什么说,Java数组声明了大小就不能修改

当然不可以,形象的说你有200个空间,你现在分配了100个空间,还有一百个空间没有分配使用,这时候就可以从剩下的100个空间中取空间来用,可能现在就用了100-150的空间,数组的内存空间是连续的,你如果直接使用这101的话肯定就覆盖了其它让友数据了。

数组空间是静态分配的,就是初始化的时候就分配好了的,你如果需要修改就要使用链表之类的动态分配空间的类,学过数据肆带结构应该都知道链表的使用。坦雹槐

④ java 怎样 改变 数组元素的值

1、首先你要确定数组卜备的类型(比如 整型数组、字符串数组、字节数组等类雹陪型)
2、其次你要能访问到数组元素,即:明确访问数组 元素的方法。
3、按照1和2中确认的类型和方法来对数组元素的值进行修改
例如:
int[] a={1,2,3,4,5,6}; //该数组类型为一维的整型数组,数组元素的类型都为整数类型
针对 该数组,访问该一维数组可以通过下标的源弊蠢方法:a[i] ,i为数组元素的下标(i=0 表示数组的第1个元素,依次类推),如果要修改该数组的第3元素的值为 30 ,那么i=2,可以通过 a[2]=30; 这个语句实现。

⑤ 如何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定义一个方法将一个数组的元素的值改为另一个数组元素的值

public static void main(String[] args){ /** * 1、Java定义一个一维数组,并给每个元素赋值为数组下标的值,并显示 */ int[] arr = new int[10]; for (int i = 0; i < arr.length; i++){ arr[i] = i; System.out.println(i + "," + arr[i]); }} public static void main(String[] args){ /** * 2、修改上述程序,将数组的赋值改为从键盘上输入的10个整数 */ int[] arr = new int[10]; System.out.println("请依次输入10个整数"); for (int i = 0; i < arr.length; i++){ System.out.println("请输入第" + (i + 1) + "个整数:"); Scanner input = new Scanner(System.in); arr[i] = Integer.parseInt(input.nextLine()); } for (int i = 0; i < arr.length; i++){ System.out.println(i + "," + arr[i]); } /** * 3、修改上述程序,添加代码,实现从10个数中找到最大值和最小值,并显示。 */ int max = arr[0]; // 将数组的第一个元素赋给max int min = arr[0]; // 将数组的第一个元素赋给min for (int i = 1; i < arr.length; i++){ // 从数组的第二个元素开始赋值,依次比较 if (arr[i] > max){ // 如果arr[i]大于最大值,就将arr[i]赋给者灶携最大值 max = arr[i]; } if (arr[i] < min){ // 如果arr[i]小于最小值,就将arr[i]赋给最小值 min = arr[i]; } } System.out.println("最大值是:" + max); System.out.println("最小值是:" + min); /** * 4、修改上述程序,添加代码,去掉最大值和最小辩圆值,然后计算剩下的数的平均值,并显示 */ int sum = 0; for (int i = 0; i < arr.length; i++){ sum += arr[i]; } sum = sum - max - min; // 去掉最大值和最小值首伏的总和 double average = sum / (arr.length - 2); System.out.println("平均值:" + average);}

⑦ 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;
}

}

⑧ java怎样对数组里面的数据进行增、删、查、改

您好, 删除delete(a,4); 删除index=4的数据,即a[4]=4 删除
批量删除delete(a,2)删除所有a[i]=2的数据,即a[2] 、a[6]、 a[7]删除
原题就这么写的,两个方法名一样,参数一样,功能却不一样。
class TestArray{
public static void main(String[]args){
int[] a ={0,1,2,3,4,5,2,2,1};
print(add(a,9,2));
print(delete(a,3));
select(a,2);
print(change(a,2,98));
print(deleteAll(a,2));
}
//增
public static int[] add(int[] array,int num,int index){
int[] result=new int[array.length+1];
for(int i=0,j=0;i<array.length;i++,j++){
if(j==index){
result[j]=num;
i--;
}else{
result[j]=array[i];
}
}
return result;
}
//删
public static int[] delete(int[] array,int index){
int[] result=new int[array.length-1];
for(int i=0,j=0;i<array.length;i++,j++){
if(i==index){
j--;
}else{
result[j]=array[i];
}
}
return result;
}
//查
public static void select(int[] array,int num){
int count=0;
for(int i=0;i<array.length;i++){
if(array[i]==num){
System.out.println("index"+i+"的值为"+num);
count++;
}
}
if(count==0)
System.out.println("找不到");
}
//改
public static int[] change(int[] array,int index,int num){
array[index]=num;
return array;
}
//批量删除
public static int[] deleteAll(int[] array,int num){
int j=0;
for(int i=0;i<array.length;i++){
if(array[i]==num){
j++;
}
}
int[] result=new int[array.length-j];
j=0;
for(int i=0;i<array.length;i++){
if(array[i]!=num){
result[j++]=array[i];
}
}
return result;
}
//打印数组
public static void print(int[] array){
for(int i:array){
System.out.print(i+" ");
}
System.out.println();
}
}

⑨ Java中如何重设数组的大小

在Java中粗巧,数组不能动态重设大小。一个可替代方法是使配凳明用java.util.ArrayList (或者java.util.Vector)代替使用原始数组培告(array)。另一种解决方案是用一个不同大小的数组重设数组,将旧数组内容拷贝到新的数组。
/** * 使用一个新大小重设数组,并拷贝旧数组的内容到新数组 * @param oldArray 旧数组被重设 * @param newSize 新数组大小 * @return 返回带同样内容的新数组 */privatestatic Object resizeArray (Object oldArray, int newSize){ int oldSize = java.lang.reflect.Array.getLength(oldArray); Class elementType = oldArray.getClass().getComponentType(); Object newArray = java.lang.reflect.Array.newInstance( elementType,newSize); int preserveLength = Math.min(oldSize,newSize); if (preserveLength >0) System.array (oldArray,0,newArray,0,preserveLength); return newArray; }// resizeArray()测试用例publicstaticvoid main (String[] args) { int[] a = {1,2,3}; a = (int[])resizeArray(a,5); a[3] =4; a[4] =5; for (int i=0; i

⑩ 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的长度,否则就会报数组越界的一场。这也说明了无法实现数组长度的动态扩展。

热点内容
撕裂者哪个配置好 发布:2024-11-02 07:58:49 浏览:990
c编写的程序经过编译 发布:2024-11-02 07:41:18 浏览:941
mc服务器灵魂绑定如何出售 发布:2024-11-02 07:39:36 浏览:583
cf服务器不同如何一起玩游戏 发布:2024-11-02 07:38:24 浏览:945
手机压缩游戏 发布:2024-11-02 07:27:03 浏览:451
c语言的四书五经 发布:2024-11-02 07:21:42 浏览:742
vbaexcel数据库 发布:2024-11-02 07:16:09 浏览:11
java线程的sleep 发布:2024-11-02 07:15:18 浏览:845
手机缓存清理器 发布:2024-11-02 07:07:03 浏览:312
安卓手机怎么安装程序 发布:2024-11-02 07:02:22 浏览:732