java中的數(shù)組一旦被定義長度是不允許修改長度的,如果題主希望實現(xiàn)類似的功能可以采用ArrayList。ArrayList的底層結構就是數(shù)組。當ArrayList實例化時會默認設置一個長度,當長度不夠用時會自動擴展現(xiàn)有長度的1/2.(假設初始數(shù)組長度為10,現(xiàn)在變成了15)
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、虛擬空間、營銷軟件、網站建設、和林格爾網站維護、網站推廣。
System.arraycopy(Object src,int srcPos,Object dest,int destPos,int length )能夠實現(xiàn)數(shù)組復制的功能。
假設有數(shù)組a(src),數(shù)組b(dest),我們希望把a數(shù)組中從下標為2(srcPos)長度為3(length)的元素復制到b的下標為4(destPos)開始的元素中。java代碼示例如下:
int?a?=?[1,3,5,7,9];
int?b?=?[2,4,6,8,0,2,4];
System.arraycopy(a,2,b,4,3);
//最終b的內容為[2,4,6,8,5,7,9];
但是如果注意API的話會發(fā)現(xiàn)arraycopy有幾個限制
1、a,b的元素類型必須相同(int和Integer這里也是需要區(qū)分的)
2、數(shù)組不能越界,也就是srcPos+length不能超過a的長度;desPos+length也不能超過b的長度,否則就會報數(shù)組越界的一場。這也說明了無法實現(xiàn)數(shù)組長度的動態(tài)擴展。
ArrayList就是一個可以變成的數(shù)組(你可以這樣理解)
ArrayListE 其中E是一個泛型,例如,ArrayListString array=new ArrayListString();則表示新建一個存放String的可變長數(shù)組。
ArrayListObject array1=new ArrayListObject()則為一個存放Object的可變長數(shù)組。
記住,這種樣式的E,有的用T表示,它的意思為泛型。泛型是什么就不介紹了。
而且,E只能是一個類的類名,如果你是變?yōu)锳rrayListint則是錯誤的,要用ArrayListInteger才可以
一般來說,Java中定義一個數(shù)組,這個數(shù)組的長度是固定的,如果改變數(shù)組的長度,實際上是就是要重新new一個數(shù)組,然后把原來數(shù)組里的值放進新的數(shù)組中并把新數(shù)組返回。
public
static
char[]
changSize(char[]
c,int
s){
char[]
s
=
new
char[s];
for(int
i
=
0;ic.size;i++){
s[i]=c[i];
}
return
s;
}
應該是你太想當然了。前后交換是沒錯,但是你循環(huán)次數(shù)有誤。應該是循環(huán) (arr.length+1)/2 ,當然后面的交換賦值也要改
網頁題目:java可變長數(shù)組代碼 java中可變數(shù)組
本文地址:http://muchs.cn/article42/doeihec.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、網站設計、電子商務、網站設計公司、手機網站建設、虛擬主機
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)