zoukankan      html  css  js  c++  java
  • 线性表

    顺序表 ArrayList & LinkedList

    操作合集

    01. 创建表 createList

    // 默认使用 Java 的 ArrayList 作为 顺序表, 所以不需要创建, 直接使用
    ArrayList<String> mySequenceList = new ArrayList<String>();
    LinkedList<String> myLinkedList = new LinkedList<String>();

    02. 初始化 initList (默认提供初始化, 不需要特殊初始化)

    但是, 因为 Java 的 ArrayList 是支持动态增长的, 所以, 并不是一下子分配了所有的内存空间, 而是一点点增长的.

    比如, ArrayList<String> mySequenceList = new ArrayList<String>(10);   // 这样也没有用, 并不是一下子分配了10个存储单元的. 

    03. 返回长度 listLength

    mySequenceList.size()
    myLinkedList.size()

    04. 判断空表 ListEmpty

    mySequenceList.isEmpty()
    myLinkedList.isEmpty()

    05. 插入元素 listInsert

    // 插入队尾
    mySequenceList.add("asdf");
    // 插入指定 index 位置, 但是 index 要 < size()
    // 相当于前位插入
    mySequenceList.add(0, "bi");
    myLinkedList.add("a");
    myLInkedList.add(0,"b1");

    06. 删除元素 listDelete

    // remove 按照 index 顺序
    mySequenceList.remove(0);
    // remove 按照 value 值
    mySequenceList.remove("asdf");
    myLinkedList.remove(0);
    myLinkedList.remove("asdf");

    07. 返回元素前驱 / 后继元素 priorElem, nextElem

    // sequence return
    int seq = mySequenceList.indexOf("asdf");
    if (seq >= 0) {
        int prior = seq - 1;
        int next = seq + 1;
        if (prior >= 0) {
            System.out.println("prior: " + mySequenceList.get(prior));
        }
        if (next <= mySequenceList.size()) {
            System.out.println("next: " + mySequenceList.get(next));
        }
    }
    // for linked list:

    08. 返回元素后继元素 nextElem

    reference 07

    09. 获得元素位置 LocateElem

    int seq = mySequenceList.indexOf("asdf");

    10. 返回某个位置元素 retrieve

    mySequenceList.get(0);

    11. 清空顺序表 ClearList

    mySequenceList.clear();

    链表 LinkedList

    循环链表
    双向链表

    LinkedList 是一个双向链表.

    Comments

    直接使用提供的方式, 还是有不方便的地方,例如: 无法直接获得前驱和后继, 可能还需要自己编码. 

    这个方法本身不是 ArrayList 和 LinkedList 的标准方法.

    数据结构, 还是额外自己定义的更加灵活, 直接使用系统提供的, 还是有很多的函数本身没有的.

  • 相关阅读:
    Finalize,Dispose,SuppressFinalize
    防火防盗防微软,Firefox发布插件自动检测服务
    Nginx的Rewrite设置及示例
    Linux游戏开发包 ClanLib 2.1.0 发布
    HTTP协议详解(真的很经典)
    Linux on POWER:发行版迁移和二进制兼容性考虑事项
    映射网络驱动器VBS脚本
    [笔记] 使用 opcache 优化生产环境PHP
    2020最新版MySQL数据库面试题(三)
    请注意,面试中有这7个行为肯定会被拒绝!
  • 原文地址:https://www.cnblogs.com/moveofgod/p/15489901.html
Copyright © 2011-2022 走看看