java數組修改
① 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的長度,否則就會報數組越界的一場。這也說明了無法實現數組長度的動態擴展。