You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
873 B
41 lines
873 B
import { IAdapter } from "./IAdapter";
|
|
import { List } from "./List";
|
|
|
|
export abstract class AdapterBase<T> implements IAdapter<T> {
|
|
|
|
protected _arr: Array<T> | List<T>;
|
|
|
|
constructor(useList: boolean = true) {
|
|
if (useList) {
|
|
this._arr = new List<T>();
|
|
} else {
|
|
this._arr = new Array<T>();
|
|
}
|
|
}
|
|
|
|
public add(t: T): void {
|
|
this._arr.push(t);
|
|
}
|
|
|
|
/**
|
|
* 弹出顶部元素
|
|
*/
|
|
public abstract remove(): T | undefined;
|
|
|
|
public get length(): number {
|
|
return this._arr.length;
|
|
}
|
|
|
|
public get isEmpty(): boolean {
|
|
return this._arr.length <= 0;
|
|
}
|
|
|
|
clear(): void {
|
|
if(this._arr instanceof List){
|
|
this._arr = new List<T>();
|
|
} else {
|
|
this._arr = new Array<T>();
|
|
}
|
|
}
|
|
|
|
}
|