簡易陣列線性表
阿新 • • 發佈:2018-12-15
陣列線性表
import java.util.ArrayList;
import java.util.List;
/**
- @Description:
- @author: ZhuWenjie
- @Date: 2018/12/15
**/
public class MyArrayList {
// 建立一個Object陣列
private Object[] elementData;
private int size;
public MyArrayList(){
// 預設長度10
this(10);
}
public MyArrayList(int initialCapacity){ if (initialCapacity < 0){ try { throw new Exception(); } catch (Exception e) { e.printStackTrace(); } } elementData = new Object[initialCapacity]; }
// 返回列表大小
public int size(){
return size;
}
// 判斷列表是否為空
public boolean isEmpty(){
return size == 0;
}
// 新增方法
public void add(Object obj){
// 陣列擴容
if (size == elementData.length){
//建立一個新陣列 Object[] element = new Object[size * 2 + 1]; //拷貝 System.arraycopy(elementData,0,element,0,elementData.length); elementData = element; } elementData[size++] = obj; }
// 按值刪除列表元素
public void remove(Object obj){
for (int i = 0;i < size; i++){
if (obj.equals(elementData[i])){
for (;i < size - 1; i++){
elementData[i] = elementData[i + 1];
}
}
}
size--;
}
// 查詢列表中該元素的第一個下標值
public int index(Object obj){
for (int i = 0; i < size; i++){
if (obj.equals(elementData[i])){
return i;
}
}
return -1;
}
// 判斷該元素是否在列表內
public boolean contains(Object obj){
return index(obj) >= 0;
}
public static void main(String[] args){
MyArrayList list = new MyArrayList(3);
list.add(10);
list.add(20);
list.add("aaa");
list.add(500);
System.out.println(list.size());
System.out.println(list.index("aaa"));
System.out.println(list.contains(500));
list.remove(10);
System.out.println(list.size());
}
}