JAVA数据结构--线性表(基础)

线性表(linear list) 也称有序表(ordered list),它的每一一个实例都是元素的一个有序集合。每一个实例的形式为(e0,e1,...,en-1))其中n是有穷自然数,e是线性表的元素,i是元素e;的索引,n是线性表的长度或大小。元素可以被看做原子,它们本身的结构与线性表的结构无关。当n=0时,线性表为空;当n>0时,eo 是线性表的第0个元素或首元素,en-1 是线性表的最后一个元素。可以认为eo先于e1,er先于e2,等等。除了这种先后关系之外,线性表不再有其他关系。
以下是一些线性表的例子: 1 )一个班级的学生按姓名的字母顺序排列的列表; 2)按非递减次序排列的考试分数表; 3)按字母顺序排列的会议列表; 4)奥林匹克男子篮球比赛的金牌获得者按年代次序排列的列表。根据这些例子可以理解对线性表应该实施的下列操作:

●创建一个线性表。
●撤销一个线性表。
●确定线性表是否为空。
●确定线性表的长度。
●按一个给定的索引查找一个元素 。

●按一个给定的元素查找其索引。

●按一个给定的索引删除个元素 。

●按一个给定的索引插人一个元素。

●从左至右顺序输出线性表元素。

接口List

import java.util.Comparator;

public interface List<E> extends Iterable<E> {
    //增
    public void add(E element);
    public void add(int index,E element);
    //删
    public void remove(E element);
    public E remove(int index);
    //get,set方法
    public E get(int index);
    public E set(int index,E element);
    //获得线性表中元素个数
    public int size();
    //根据元素值获得对应下标
    public int indexOf(E element);
    //是否包含元素
    public boolean contains(E element);
    //是否为空
    public boolean isEmpty();
    //清空线性表
    public void clear();
    //排序(需传入比较器)
    public void sort(Comparator<E> c);
    //获得子线性表即 fromIndex到 toIndex
    public List<E> subList(int fromIndex,int toIndex);

}

数组实现类ArrayList

import p1.接口.List;

import java.util.Comparator;
import java.util.Iterator;

public class ArrayList <E> implements List<E> {
    //数组容器
    private E[] data;
    //元素个数,如果size为0,表为空;size == data.length 满了
    //新元素要加的位置的角标
    private int size;
    //默认容量
    private static int DEFAULT_CAPACITY = 10;
    public ArrayList(){
        //默认长度为10
       data = (E[]) new Object[DEFAULT_CAPACITY];
       size = 0;

    }
    //创建一个指定容量线性表
    public  ArrayList(int capacity){
        if(capacity <=0){
            throw new IllegalArgumentException("capacity must 大于0");
        }
        DEFAULT_CAPACITY = capacity;
        data = (E[]) new Object[DEFAULT_CAPACITY];
     
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值