public class AnyArray<E> {
private E[]data;
private int size;
//構(gòu)造函數(shù)
public AnyArray(int cap){
data = (E[]) new Object[cap];
size = 0;
}
public AnyArray(){
this(10);
}
public int getCap(){
return data.length;
}
public int getSize(){
return size;
}
public boolean inEmpty(){
return size ==0;
}
public void addLast(E e){
// if (size==data.length)
// throw new IllegalArgumentException("full....");
// data[size] = e;
// size++;
add(size,e);
}
public void addFirst(E e){
add(0,e);
}
public void add(int pos,E e){
if (pos<0|| pos>size)
throw new IllegalArgumentException("add failed, pos Error.");
if (size==data.length)
resize(data.length*2);
for (int index=size-1;index>=pos;index--){
data[index+1] =data[index]; //后移
}
data[pos] = e;
size++;
}
public void modify(int pos,E e){
if (pos<0 || pos>size)
throw new IllegalArgumentException("modfiy failed, Pos Error");
data[pos] = e ;
}
public E get(int pos){
if (pos<0 || pos>size)
throw new IllegalArgumentException("get failed, Pos Error");
return data[pos];
}
public void set(int pos, E e){
if (pos<0 || pos>size)
throw new IllegalArgumentException("set failed, Pos Error");
data[pos] = e;
}
public int find(E e){
for (int i=0;i<size;i++){
if (data[i] ==e)
return i;
}
return -1;
}
public E remove(int pos){
if (pos<0 || pos>=size)
throw new IllegalArgumentException("remove failed, Pos Error");
E pos_data = data[pos];
for (int i=pos+1;i<size;i++){
data[i-1]=data[i];
}
size--;
if (size == data.length /4 && data.length/2 !=0){
System.out.println("-- resize.....");
resize(data.length/2);
}
return pos_data;
}
public E removeFirst(){
return remove(0);
}
public void removeElement(E e){
int index = find(e);
if (index !=-1){
remove(index);
}
}
public E removeLast(){
return remove(size-1);
}
public void print(){
for (E e :data){
System.out.println(e);
}
}
public String toString(){
StringBuilder res = new StringBuilder();
res.append(String.format("Array size is %s, Cap is %s\n",size,getCap()));
res.append("[");
for (int i=0; i<size ; i++){
res.append(data[i]);
if (i!=size-1)
res.append(", ");
}
res.append("]");
return res.toString();
}
private void resize(int newCap){
if (newCap ==0)
return;
System.out.println("resize......");
E[] newData = (E[]) new Object[newCap];
for (int i=0;i<size;i++)
newData[i] = data[i];
data = newData;
}
}
動(dòng)態(tài)數(shù)組--java
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)滚局,“玉大人居暖,你說(shuō)我怎么就攤上這事√僦” “怎么了太闺?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)嘁圈。 經(jīng)常有香客問(wèn)我省骂,道長(zhǎng)蟀淮,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任钞澳,我火速辦了婚禮怠惶,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘轧粟。我一直安慰自己策治,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布兰吟。 她就那樣靜靜地躺著通惫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪混蔼。 梳的紋絲不亂的頭發(fā)上履腋,一...
- 那天,我揣著相機(jī)與錄音拄丰,去河邊找鬼府树。 笑死,一個(gè)胖子當(dāng)著我的面吹牛料按,可吹牛的內(nèi)容都是我干的奄侠。 我是一名探鬼主播,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼载矿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼垄潮!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起闷盔,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤弯洗,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后逢勾,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體牡整,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年溺拱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逃贝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響杨拐,放射性物質(zhì)發(fā)生泄漏祈餐。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一哄陶、第九天 我趴在偏房一處隱蔽的房頂上張望昼弟。 院中可真熱鬧,春花似錦奕筐、人聲如沸舱痘。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)芭逝。三九已至,卻和暖如春渊胸,著一層夾襖步出監(jiān)牢的瞬間旬盯,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓切厘,卻偏偏與公主長(zhǎng)得像萨咳,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疫稿,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 什么是數(shù)組 所謂數(shù)組号坡,是具有相同數(shù)據(jù)類(lèi)型的若干變量或者數(shù)據(jù)按照一定排序規(guī)則組合起來(lái)的一種數(shù)據(jù)存儲(chǔ)格式懊烤。數(shù)組中的數(shù)據(jù)...
- 前言 今天就要離校了,大學(xué)生涯也走到了盡頭〗钐肯定有很多不舍奸晴,不舍的是學(xué)校的安逸和美麗的女友冤馏。同時(shí)也對(duì)自己的未來(lái)充滿(mǎn)...
- 一日麸、說(shuō)明 Java 提供一個(gè)類(lèi)可以解決數(shù)組的動(dòng)態(tài)長(zhǎng)度的問(wèn)題,它就是 ArrayList 類(lèi),即泛型數(shù)組列表代箭,也就是...
- 本節(jié)內(nèi)容: 1:數(shù)組概念墩划、定義格式說(shuō)明 2:數(shù)組初始化定義&動(dòng)態(tài)初始化 3:數(shù)組在內(nèi)存中的模型 本文是《凱哥陪你學(xué)...
- 0.前言 上一篇文章乙帮,我們講解了Java中的I/O流的概念及其使用方法今天我們主要講述Java中動(dòng)態(tài)數(shù)組的使用方法...