最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java數(shù)組的擴(kuò)容代碼示例

 更新時(shí)間:2017年09月26日 10:29:08   作者:Engineer-MrYang  
這篇文章主要介紹了Java數(shù)組的擴(kuò)容,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是Java數(shù)組的擴(kuò)容的相關(guān)代碼示例,具體實(shí)現(xiàn)過程如下所示。

在寫程序的過程中,我們常常會(huì)碰見數(shù)組空間不夠用的情況,比如我已經(jīng)初始化了一個(gè)數(shù)組int []a = {1,2,3,4,5,6,7,8,9,10} ;這時(shí),我想往數(shù)組下標(biāo)3的位置插入一個(gè)元素,該怎么做?用C語言實(shí)現(xiàn)太難了吧,需要調(diào)用memcpy函數(shù)要一個(gè)一個(gè)偏,但是在java中就不用那么麻煩了,有種叫數(shù)組的擴(kuò)容方式,輕松實(shí)現(xiàn)。來看看代碼:

public class HelloWorld {
	public static void main(String[] args){
	//	Scanner s = new Scanner(System.in);
	//	System.out.println("請輸入一個(gè)數(shù)字");
	//	int num = s.nextInt();
		//這個(gè)數(shù)組下標(biāo)只能到9
		int []a = {1,2,3,4,5,6,7,8,9,10};
		//先擴(kuò)容
		int []b = Getarray(a,3,100);
		Demoe.PrintArray(b);
	}
	//案例:有一個(gè)數(shù)組已經(jīng)初始化完畢,現(xiàn)向其下標(biāo)3插入一個(gè)元素100
	public static int[] Getarray(int []a , int index , int num){
		int src_array_length = a.length ; 
		int []b = new int[src_array_length+1] ;
		for(int i = 0 ; i < a.length ; i++){
			b[i] = a[i] ; 
		}
		a = b ; //如果還想使用a,使得a指向b
		//接下來從最后一個(gè)元素開始,將最后一個(gè)元素的前面一個(gè)元素拷貝到最后一個(gè)
		//以此類推
		for(int i = a.length - 1 ; i > index ; i--){
			a[i] = a[i-1];
		}
		//別忘了,將要插入的元素插入到對應(yīng)的數(shù)組坐標(biāo)
		a[index] = num ;
		return a ;
	}
}

也可以使用java中的庫函數(shù)來實(shí)現(xiàn)

import java.util.Arrays;
public class HelloWorld {
	public static void main(String[] args){
	//	Scanner s = new Scanner(System.in);
	//	System.out.println("請輸入一個(gè)數(shù)字");
	//	int num = s.nextInt();
	int []a = {1,2,3,4,5};
	int []b = new int[a.length] ;
		//1、源數(shù)組
		//2、源數(shù)組的哪個(gè)位置開始
		//3、目標(biāo)數(shù)組
		//4、目標(biāo)數(shù)組的哪個(gè)位置開始存放
		//5、拷貝幾個(gè)
		//System.arraycopy(a, 0, b, 0, a.length);
		//Demoe.PrintArray(b);
		//擴(kuò)容--->擴(kuò)容了一倍
		//a = Arrays.copyOf(a, 2*a.length) ;
		//Demoe.PrintArray(a);
		a = insertArray(a , 3 , 100) ;
		//打印數(shù)組
		System.out.println(Arrays.toString(a));
	}
	//寫一個(gè)函數(shù),向整數(shù)數(shù)組的任意pos位置插入一個(gè)元素value
	public static int[] insertArray(int []a , int pos , int value){
		if(pos < 0 || pos > a.length + 1) //索引下標(biāo)不對,直接返回源數(shù)組 
			return a ;
		//放入一個(gè)元素,先擴(kuò)容,后復(fù)制
		a = Arrays.copyOf(a, a.length+1) ;
		for(int i = a.length - 1 ; i > pos ; i--){
			a[i] = a[i-1] ; //后移動(dòng)
		}
		a[pos] = value ;
		return a ;
	}
}

以上就是數(shù)組擴(kuò)容的Java簡單實(shí)現(xiàn)代碼,希望對大家學(xué)習(xí)Java能夠有所幫助。感興趣的朋友可以參閱更多內(nèi)容:Java并發(fā)編程之重入鎖與讀寫鎖 、 淺談java中的局部變量和全局變量 、 淺談Java注解和動(dòng)態(tài)代理等。感謝大家對本站的支持。

相關(guān)文章

最新評論

商都县| 咸宁市| 郧西县| 石柱| 临夏县| 德清县| 海城市| 裕民县| 张家港市| 青铜峡市| 贵州省| 句容市| 太白县| 十堰市| 田林县| 江永县| 库车县| 汉中市| 辰溪县| 蓝田县| 岗巴县| 奇台县| 平乐县| 大渡口区| 秭归县| 明光市| 金坛市| 兖州市| 东莞市| 大田县| 松溪县| 天祝| 哈巴河县| 石柱| 德安县| 安国市| 天柱县| 来安县| 武山县| 田东县| 名山县|