这是一个顺序表的类,初始化的时候就已经确定了表的长度,之后不能添加数据,因为使用的是数组存储的数据,不过这个表的类型是泛型的。

public class List {

    private  Object[] data;
private int length; /*
*新建一个线性表
*/
public List(Object...objects) {
this.data = objects;
for(Object object:objects) {
this.length++;
}
} /*
* 若线性表为空,返回true 否则返回false
*/
public boolean ListEmpty() {
if(this.data == null) {
return true;
}else {
return false;
}
} /*
* 将当前线性表清空
*/
public boolean ClearList() {
this.data = null;
this.length = 0;
return true;
} /*
* 将返回线性表的第i个位置的元素值
*/
public Object GetElem(int i) {
return data[i];
} /*
* 在表从找到与e值相等的元素,返回该元素表示成功,返回0表示失败
*/
public Object LocateElem(Object e) {
int i = 0;
for(Object object:this.data) {
if(object == e) {
return i;
}
i++;
}
return 0;
} /*
* 在表中的第i个位置插入新元素e
*/
public Boolean ListInsert(int i, Object e) {
if(this.length == i) {
//如果超过表的长度 返回错误
return false;
}else {
for(int j = this.length - 1; j > i; j--) {
data[j] = data[j-1] ;
}
data[i] = e;
return true;
}
}
/*
* 返回表的长度
*/
public int length() {
return this.length;
} /*
* 删除表的第i个位置
*/
public Boolean ListDelete (int i) {
if(this.length == i) {
//如果超过表的长度 返回错误
return false;
}else {
for(int j = i; j < this.length - 1; j++) {
data[j] = data[j+1] ;
}
return true;
}
} public static void main (String[] args) {
List list1 = new List(1,"字",2,"123");
System.out.print("现在的表:");
for(int i = 0; i < list1.length; i++) {
System.out.print(list1.GetElem(i) + ",");
}
System.out.println();
System.out.print("这个是空的吗");
System.out.println(list1.ListEmpty());
System.out.print("1的位置在");
System.out.println(list1.LocateElem(1));
System.out.print("字的位置在");
System.out.println(list1.LocateElem("字"));
System.out.print("在2的位置添加一个1");
System.out.println(list1.ListInsert(2, 1));
System.out.print("现在的表:");
for(int i = 0; i < list1.length; i++) {
System.out.print(list1.GetElem(i) + ",");
}
System.out.println();
System.out.print("把1的位置的数据删掉");
System.out.println(list1.ListDelete(1));
System.out.print("现在的表:");
for(int i = 0; i < list1.length; i++) {
System.out.print(list1.GetElem(i) + ",");
}
System.out.print("清空表:");
list1.ClearList();
System.out.print("这个是空的吗");
System.out.println(list1.ListEmpty());
}
}

main方法的输出结果是:

现在的表:,我,,,
这个是空的吗false
1的位置在0
字的位置在0
在2的位置添加一个1true
现在的表:,我,,,
把1的位置的数据删掉true
现在的表:,,,,清空表:这个是空的吗true
 

最新文章

  1. Excel 实用技巧之一
  2. java比较版本号
  3. 深入剖析ConcurrentHashMap(2)
  4. GLSL Interface Block参考
  5. spring mvc jsp运行不起来的问题
  6. Gvim使用
  7. Java里的File I/O
  8. java之yield(),sleep(),wait()区别详解-备忘笔记
  9. ListView中内容的动画效果
  10. Ceph源码解析:PG peering
  11. Nginx 之五: Nginx服务器的负载均衡、缓存与动静分离功能
  12. FragmentCustomAnimation实现Fragment的界面切换
  13. MVC自定义配置
  14. Beginning Python From Novice to Professional (5) - 条件与循环
  15. 如何相互转换逗号分隔的字符串和List
  16. MobX+react使用小demo
  17. Pycharm+Python3+python工程打包成exe+在windows下自动定时运行
  18. python学习目录(转载)
  19. C/C++之Memcpy and memmove
  20. Java--普通代码块静态代码块执行顺序

热门文章

  1. win10win7office系列激活工具 KMSAuto Net 2016 v1.5.4 绿色便携版
  2. Bzoj 3126[Usaco2013 Open]Photo 题解
  3. 数据库系统概念:基础的SQL
  4. python,看看有没有你需要的列表元祖和range知识!
  5. 用canvas绘制时钟
  6. Flask项目常见面试问题
  7. IT界的复仇者联盟解读
  8. lnmp php使用命令行去备份数据库
  9. cookbook_模块和包
  10. cookbook_数据结构和算法