• 常用Java API: ArrayList(Vector) 和 LinkedList


    摘要:

    本文主要介绍ArrayList(Vector)和LinkedList的常用方法, 也就是动态数组和链表。

    ArrayList

    ArrayList 类可以实现可增长的对象数组。

    构造方法

    ArrayList();//构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零。
    ArrayList(int initialCapacity);//使用指定的初始容量和容量增量构造一个空的向量。

    增加元素

    add(E e);//将指定元素添加到末尾
    add(int index, E element)//在此向量的指定位置插入指定的元素

    删除元素

    remove(int index);//移除此向量中指定位置的元素
    clear();//从此向量中移除所有元素。

    修改元素

    set(int index, E element);//用指定的元素替换此向量中指定位置处的元素

    查找元素

    get(int index)//返回向量中指定位置的元素
    indexOf(Object o)//返回此向量中第一次出现的指定元素的索引,如果此向量不包含该元素,则返回 -1。
    lastIndexOf(Object o)返回此向量中最后一次出现的指定元素的索引;如果此向量不包含该元素,则返回 -1。

    容器大小

    size();//返回此向量中的组件数。

    判空

    isEmpty();//测试此向量是否不包含组件

    转化为数组

    toArray();//返回一个数组,包含此向量中以恰当顺序存放的所有元素。

    转化为字符串

    toString();//返回此向量的字符串表示形式,其中包含每个元素的 String 表示形式。

    实例

    ArrayList<Integer> V = new ArrayList<>();
    V.add(1);
    V.add(1);
    V.set(0, 0);
    System.out.print(V.toString());
    
    输出:
    [0, 1]
    

    LinkedList

    LinkedList是List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列

    1. add(E e)//在末尾添加一个元素
    2. addFirst(E e)//在开头添加一个元素
    3. addLast(E e)//在末尾添加一个元素
    4. offer(E e)//将指定元素添加到此列表的末尾(最后一个元素)
    5. clear()//从此列表中移除所有元素
    6. element()获取但不移除此列表的头(第一个元素)。
    7. peek()//获取但不移除此列表的头(第一个元素)。
    8. poll()//获取并移除此列表的头(第一个元素)
    9. getFirst()返回此列表的第一个元素。
    10. getLast()返回此列表的最后一个元素
    11. indexOf(Object o)返回此列表中首次出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。
    12. int lastIndexOf(Object o)返回此列表中最后出现的指定元素的索引,如果此列表中不包含该元素,则返回 -1。
    13. pop()从此列表所表示的堆栈处弹出一个元素。
    14. void push(E e)将元素推入此列表所表示的堆栈。
    15. remove()获取并移除此列表的头(第一个元素)。
    16. remove(int index)移除此列表中指定位置处的元素
    17. size()//返回元素个数

    大体上来说LinkedList和ArrayList的方法用法都一样,无非是get,set等方法,不过LinkedList可以用作栈和队列(链表实现),因为它包含了(
    push,pop)栈的进出,(offer,poll)队列的进出等方法。
    最后说一下遍历

    1. 通过迭代器
    Iterator iterator=students.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
    
    1. for循环和get方法
    for(int i = 0; i < n; i++)
        System.out.println(E.get(i))
    
    1. for each
    for(int x : E){  //构造容器时用的什么类型,就定义什么类型。
    	System.out.println(x);
    }
    

    stack和queue

    上面已经说过,LinkedList可以用来实现栈和队列。
    在JAVA中Stack也有专门的类,是通过Vector实现的。

    实例:

    Stack<Integer> Stack = new Stack<>();  //第一种栈的实现方式
    LinkedList<Integer> Stack = new LinkedList<>(); // LinkedList没有实现Stack接口,但是我们只需要用其中的关于栈的方法。
    Queue<Integer> Queue = new LinkedList<>();//LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。
    

    在使用这些集合的时候,我们不需要背会所有的方法(函数),只需要知道一个大概就行了,因为编译器有方法提示嘛~

  • 相关阅读:
    Eclipse Clojure 开发插件
    leiningen安装记录
    XX-NET史上最详细完整教程
    使用Chrome浏览器设置XX-net的方法
    Sublime text 3搭建Python开发环境及常用插件安装
    python集合(set)类型的操作
    python编码问题在此终结
    新版的 selenium已经放弃PhantomJS改用Chorme headless
    python爬虫积累(一)--------selenium+python+PhantomJS的使用(转)
    Pyinstaller打包selenium去除chromedriver黑框问题解决!!!
  • 原文地址:https://www.cnblogs.com/wangzheming35/p/12330846.html
Copyright © 2020-2023  润新知