import java.util.Arrays;
public class MyArraylist {
int[] element;//陣列
int size;//線性表實際大小
public MyArraylist() {
this.size=0;
this.element=new int[4];
}
public MyArraylist(int capacity) {
this.size=0;
this.element=new int[capacity];
}
// 列印順序表
public void display() {
for (int i=0;i<this.size;i++){
System.out.print(this.element[i]+" ");
}
System.out.println();
}
//線性表是否滿
public boolean isFull() {
if (this.size==this.element.length){
return true;
}
return false;
}
//擴容
public void resize( ) {
this.element= Arrays.copyOf(this.element,2*this.element.length);
}
//在 pos 位置新增元素
public void addPos(int pos, int data) {
if (pos<0||pos>this.element.length-1){
System.out.println("插入位置不合法");
return;
}
if (isFull()){
//System.out.println("線性表已滿");
resize();
}
//pos位置后面的所有元素后移
for (int i=this.size-1;i>=pos;i--){
this.element[i+1]=this.element[i];
}
//插入元素
this.element[pos]=data;
this.size++;
}
//默認插入到陣列的最后
public void addTail(int data) {
if (isFull()){
resize();
}
this.element[this.size]=data;
this.size++;
}
// 判定是否包含某個元素
public boolean contains(int toFind) {
for (int i=0;i<this.size;i++){
if (this.element[i]==toFind){
return true;
}
}
return false;
}
// 查找某個元素對應的位置
public int search(int toFind) {
for (int i=0;i<this.size;i++) {
if (this.element[i] == toFind) {
return i;
}
}
return -1;
}
// 獲取順序表長度
public int size() {
return this.size;
}
// 獲取 pos 位置的元素
public int getPos(int pos) {
if (pos<0||pos>this.size-1){
System.out.println("查找位置不合法");
}
return this.element[pos];
}
// 給 pos 位置的元素修改為 value
public void setPos(int pos, int value) {
if (pos<0||pos>this.size-1){
System.out.println("修改位置不合法");
}
this.element[pos]=value;
}
//洗掉第一次出現的關鍵字key
public void remove(int key) {
int index=search(key);
for (int i=index;i<this.size;i++){
this.element[i]=this.element[i+1];
}
this.size--;
}
// 清空順序表
public void clear() {
this.size=0;
}
public static void main(String[] args) {
MyArraylist myArraylist=new MyArraylist(4);
//指定位置插入元素
myArraylist.addPos(0,10);
myArraylist.addPos(1,20);
myArraylist.addPos(2,30);
//列印
myArraylist.display();
//尾插法
myArraylist.addTail(40);
myArraylist.display();
myArraylist.addTail(50);
myArraylist.display();
myArraylist.addPos(2,60);
myArraylist.display();
//查找元素
int index=myArraylist.search(60);
System.out.println("查找元素的位置:"+index);
//元素是否存在
boolean bool=myArraylist.contains(60);
System.out.println("查找元素是否存在:"+bool);
//獲取指定位置元素
int val=myArraylist.getPos(2);
System.out.println("獲取指定位置元素:"+val);
//修改指定位置元素
myArraylist.setPos(2,70);
myArraylist.display();
//線性表大小
int size=myArraylist.size();
System.out.println("線性表的大小:"+size);
//洗掉元素
myArraylist.remove(70);
myArraylist.display();
//清空線性表
myArraylist.clear();
size=myArraylist.size();
System.out.println("清空線性表后的大小:"+size);
myArraylist.display();
}
}
- 測驗用例

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/242381.html
標籤:java
上一篇:SpringCloud專案從訊息中間件中獲取到訊息(SpringCloud整合Netty和RabbitMQ以及WebSocket)
