數組在java中的擴容的實例方法
在使用數組的時候,因為大小的限制,難免會出現不夠用的現象。直接給數據對象擴容是不可行的,這時候就需要我們找尋一些其他的方法。本篇先為大傢簡單分析擴容的原理,然後創建一個數組供大傢使用,最後提供兩種數組擴容方法:for循環和Arrays,下面一起來看具體的操作。
1.擴容的原理
(1)Java數組對象的大小是固定不變的,數組對象是不可擴容的。
(2)利用數組復制方法可以變通的實現數組擴容。
(3)System.arraycopy()可以復制數組。
(4)Arrays.copyOf()可以簡便的創建數組副本。
(5)創建數組副本的同時將數組長度增加就變通的實現瞭數組的擴容。
2.先創建數組
import java.util.Arrays; //數組的擴容示例 public class Test { public static void main(String [] args){ //創建一個原始數組,並做好初始化。 // int [] arry = {1,3,5,7,9}; int arry[] =new int[]{1,3,5,7,9}; int arry1[]=new int[7];//新建一個新數組這裡的7=arry.length+需要擴容的長度 System.out.println("打印原始數組的長度為:"+arry.length); System.out.println("打印新數組的長度為:"+arry1.length); //驗證該數組有沒有創建完成,可以獲取一下數組元素看看能不能成功。 // System.out.println(arry[1]); //把從舊數組中獲取的數據一個一個的存到新的數組裡面去,並新增兩個數:11,13。 //如何把數據存到數組裡面去,使用arry1[0]=1; /*
3.方法一:循環遍歷原始數組arry,長度是固定的,所以用for循環。
//1、先完成復制數組 for(int i=0;i<arry.length;i++){ arry1[i] = arry[i]; } //2、再完成賦值插入操作,即已完成數組的擴容操作。 arry1[5]=11; arry1[6]=13; System.out.println("新數組為:"+arry1[5]); System.out.println("新數組為:"+arry1[6]); */ /*
4.方法二:使用java的util包的Arrays類的copyOf(原數組名,新數組長度)方法來進行復制。
arry1 = Arrays.copyOf(arry,arry.length+2); arry1[5] = 11; arry1[6] = 13; System.out.println("新數組為:"+arry1[5]); System.out.println("新數組為:"+arry1[6]);
以上就是數組在java中的擴容方法,這兩種方法相對新手而言,是非常容易實現擴容的。
相關實例擴展:
import java.util.Arrays; public class HelloWorld { public static void main(String[] args){ // Scanner s = new Scanner(System.in); // System.out.println("請輸入一個數字"); // int num = s.nextInt(); int []a = {1,2,3,4,5}; int []b = new int[a.length] ; //1、源數組 //2、源數組的哪個位置開始 //3、目標數組 //4、目標數組的哪個位置開始存放 //5、拷貝幾個 //System.arraycopy(a, 0, b, 0, a.length); //Demoe.PrintArray(b); //擴容--->擴容瞭一倍 //a = Arrays.copyOf(a, 2*a.length) ; //Demoe.PrintArray(a); a = insertArray(a , 3 , 100) ; //打印數組 System.out.println(Arrays.toString(a)); } //寫一個函數,向整數數組的任意pos位置插入一個元素value public static int[] insertArray(int []a , int pos , int value){ if(pos < 0 || pos > a.length + 1) //索引下標不對,直接返回源數組 return a ; //放入一個元素,先擴容,後復制 a = Arrays.copyOf(a, a.length+1) ; for(int i = a.length - 1 ; i > pos ; i--){ a[i] = a[i-1] ; //後移動 } a[pos] = value ; return a ; } }
到此這篇關於數組在java中的擴容的實例方法的文章就介紹到這瞭,更多相關數組在java中的擴容方法淺析內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java中數組的定義與使用
- java數組算法例題代碼詳解(冒泡排序,選擇排序,找最大值、最小值,添加、刪除元素等)
- Java通過遞歸算法解決迷宮與漢諾塔及八皇後問題
- Java常問面試內容–數組、聲明、初始化、冒泡、多維數組、稀疏數組
- java編程學習輸入輸出詳解看完快速上手