數(shù)組在java中的擴容的實例方法
在使用數(shù)組的時候,因為大小的限制,難免會出現(xiàn)不夠用的現(xiàn)象。直接給數(shù)據(jù)對象擴容是不可行的,這時候就需要我們找尋一些其他的方法。本篇先為大家簡單分析擴容的原理,然后創(chuàng)建一個數(shù)組供大家使用,最后提供兩種數(shù)組擴容方法:for循環(huán)和Arrays,下面一起來看具體的操作。
1.擴容的原理(1)Java數(shù)組對象的大小是固定不變的,數(shù)組對象是不可擴容的。
(2)利用數(shù)組復(fù)制方法可以變通的實現(xiàn)數(shù)組擴容。
(3)System.arraycopy()可以復(fù)制數(shù)組。
(4)Arrays.copyOf()可以簡便的創(chuàng)建數(shù)組副本。
(5)創(chuàng)建數(shù)組副本的同時將數(shù)組長度增加就變通的實現(xiàn)了數(shù)組的擴容。
2.先創(chuàng)建數(shù)組import java.util.Arrays;//數(shù)組的擴容示例public class Test {public static void main(String [] args){//創(chuàng)建一個原始數(shù)組,并做好初始化。// int [] arry = {1,3,5,7,9};int arry[] =new int[]{1,3,5,7,9};int arry1[]=new int[7];//新建一個新數(shù)組這里的7=arry.length+需要擴容的長度System.out.println('打印原始數(shù)組的長度為:'+arry.length);System.out.println('打印新數(shù)組的長度為:'+arry1.length);//驗證該數(shù)組有沒有創(chuàng)建完成,可以獲取一下數(shù)組元素看看能不能成功。// System.out.println(arry[1]);//把從舊數(shù)組中獲取的數(shù)據(jù)一個一個的存到新的數(shù)組里面去,并新增兩個數(shù):11,13。//如何把數(shù)據(jù)存到數(shù)組里面去,使用arry1[0]=1;/*
3.方法一:循環(huán)遍歷原始數(shù)組arry,長度是固定的,所以用for循環(huán)。
//1、先完成復(fù)制數(shù)組for(int i=0;i<arry.length;i++){arry1[i] = arry[i];}//2、再完成賦值插入操作,即已完成數(shù)組的擴容操作。arry1[5]=11;arry1[6]=13;System.out.println('新數(shù)組為:'+arry1[5]);System.out.println('新數(shù)組為:'+arry1[6]);*//*
4.方法二:使用java的util包的Arrays類的copyOf(原數(shù)組名,新數(shù)組長度)方法來進行復(fù)制。
arry1 = Arrays.copyOf(arry,arry.length+2);arry1[5] = 11;arry1[6] = 13;System.out.println('新數(shù)組為:'+arry1[5]);System.out.println('新數(shù)組為:'+arry1[6]);
以上就是數(shù)組在java中的擴容方法,這兩種方法相對新手而言,是非常容易實現(xiàn)擴容的。
相關(guān)實例擴展:
import java.util.Arrays;public class HelloWorld {public static void main(String[] args){//Scanner s = new Scanner(System.in);//System.out.println('請輸入一個數(shù)字');//int num = s.nextInt();int []a = {1,2,3,4,5};int []b = new int[a.length] ;//1、源數(shù)組//2、源數(shù)組的哪個位置開始//3、目標(biāo)數(shù)組//4、目標(biāo)數(shù)組的哪個位置開始存放//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) ;//打印數(shù)組System.out.println(Arrays.toString(a));}//寫一個函數(shù),向整數(shù)數(shù)組的任意pos位置插入一個元素valuepublic static int[] insertArray(int []a , int pos , int value){if(pos < 0 || pos > a.length + 1) //索引下標(biāo)不對,直接返回源數(shù)組 return a ;//放入一個元素,先擴容,后復(fù)制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 ;}}
到此這篇關(guān)于數(shù)組在java中的擴容的實例方法的文章就介紹到這了,更多相關(guān)數(shù)組在java中的擴容方法淺析內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Python編寫nmap掃描工具2. PHP設(shè)計模式(四)原型模式Prototype實例詳解【創(chuàng)建型】3. python 爬取嗶哩嗶哩up主信息和投稿視頻4. PHP擴展之APC——Alternative PHP Cache(可選PHP緩存)5. ASP.NET MVC前臺動態(tài)添加文本框并在后臺使用FormCollection接收值6. 如何基于python3和Vue實現(xiàn)AES數(shù)據(jù)加密7. 10個提供免費PHP腳本下載的網(wǎng)站8. Java向Runnable線程傳遞參數(shù)方法實例解析9. Java 基于UDP協(xié)議實現(xiàn)消息發(fā)送10. php5.6不能擴展redis.so的解決方法
