/**
* Description 順序表
* Date 2017-09-02
* Author Edgar
*/
public class Sequence<E> {
//存儲元素的數(shù)組
private Object[] elem;
//數(shù)組的容量
private int capacity;
//順序表的實際大小
private int size;
public Sequence(int capacity){
if (capacity<0){
throw new RuntimeException("初始容量不能小于0");
}
this.capacity=capacity;
elem=new Object[capacity];
size =0;
}
public Sequence(){
this(10);
}
/**
* 獲取指定位置的元素
* @param index
* @return
*/
public E get(int index){
checkIndexBounds(index);
return (E) elem[index];
}
/**
* 查找某元素在順序表中是否存在
* @param e
* @return 存在則返回下標若专,否則返回-1
*/
public int find(E e){
for (int i = 0; i < size; i++) {
if (elem[i]==e){
return i;
}
}
return -1;
}
/**
* 向指定位置添加元素
* @param e
* @param index
* @return
*/
public boolean add(E e,int index) {
if (index<0 || index>size){
return false;
}
checkCapacity();
for (int i = size -1; i>=index; i--){
elem[i+1]=elem[i];
}
elem[index]=e;
size++;
return true;
}
/**
* 向順序表尾巴添加元素
* @param e
*/
public void add(E e){
checkCapacity();
elem[size++]=e;
}
/**
* 移除指定位置的元素
* @param index
*/
public void remove(int index){
checkIndexBounds(index);
for (int i = index; i< size -1; i++){
elem[i]=elem[i+1];
}
elem[--size]=null;
}
/**
* 移除順序表中最后一個元素
*/
public void remove(){
elem[--size]=null;
}
/**
* 修改指定位置上的元素
* @param e
* @param index
*/
public void set(E e,int index){
checkIndexBounds(index);
elem[index]=e;
}
public int size(){
return size;
}
public boolean isEmpty(){
return size ==0;
}
/**
* 若順序表大小超過數(shù)組容量棘街,則根據(jù)下面的增長策略增加數(shù)組容量脑题,并拷貝原來的數(shù)組
*/
private void checkCapacity(){
if (size>=capacity){
capacity=capacity+(int) (capacity*0.5f);
elem= Arrays.copyOf(elem,capacity);
}
}
/**
* 檢查數(shù)組下標是否越界
* @param index
*/
private void checkIndexBounds(int index){
if (index<0 || index >= size){
throw new IndexOutOfBoundsException();
}
}
}
Java 順序表的簡單實現(xiàn)
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門娄琉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來次乓,“玉大人,你說我怎么就攤上這事孽水∑毖” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵女气,是天一觀的道長杏慰。 經(jīng)常有香客問我,道長炼鞠,這世上最難降的妖魔是什么缘滥? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮谒主,結果婚禮上朝扼,老公的妹妹穿的比我還像新娘。我一直安慰自己霎肯,他們只是感情好擎颖,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著观游,像睡著了一般肠仪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上备典,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼倚喂!你這毒婦竟也來了每篷?” 一聲冷哼從身側響起,我...
- 正文 年R本政府宣布兆衅,位于F島的核電站郭变,受9級特大地震影響,放射性物質發(fā)生泄漏涯保。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一周伦、第九天 我趴在偏房一處隱蔽的房頂上張望夕春。 院中可真熱鬧,春花似錦专挪、人聲如沸及志。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽速侈。三九已至,卻和暖如春迫卢,著一層夾襖步出監(jiān)牢的瞬間倚搬,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 【蝴蝶效應】 蝴蝶效應:上個世紀70年代酪捡,美國一個名叫洛倫茲的氣象學家在解釋空氣系統(tǒng)理論時說叁征,亞馬遜雨林一只蝴蝶...
- 對于線性結構的順序表而言,特點: ···1.添加和刪除元素逛薇,時間復雜度是O(n),因為要移動元素.航揉。 ···(1)...
- 燕子去了,有再來的時候媳友。 楊柳枯了斯议,有再青的時候。 桃花謝了醇锚,有再開的時候哼御。 殘紅褪盡,青杏初生焊唬。 芳華不在恋昼,光陰...
- 當在《你的團隊需要一個會講故事的人》的副標題中看到“故事思維”這個詞的時候液肌,作為一名工科女生我心潮澎湃,仿佛這就是...