導航:首頁 > 編程語言 > 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數組修改相關的資料

熱點內容
python代碼精簡 瀏覽:455
文件加密了怎麼找到了 瀏覽:193
jellyfin插件怎麼選擇主伺服器 瀏覽:836
asp用戶注冊源碼 瀏覽:48
什麼是照片壓縮文件 瀏覽:392
java調用js代碼 瀏覽:979
崑山市民app怎麼修改身份信息 瀏覽:779
php登陸次數 瀏覽:744
python字元轉成數字 瀏覽:822
海川用的是什麼伺服器 瀏覽:376
口才是練出來的pdf 瀏覽:458
雲伺服器哪個公司性價比高 瀏覽:517
源碼論壇打包 瀏覽:558
php怎麼做成word 瀏覽:692
python批量生成密鑰 瀏覽:492
程序員要不要考社區人員 瀏覽:150
app的錢怎麼充q幣 瀏覽:814
android銀行卡識別 瀏覽:756
怎麼在app投放廣告 瀏覽:11
手機文件管理怎麼看app名稱 瀏覽:192