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 的标准方法.

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

  • 相关阅读:
    VAE变分自编码器Keras实现
    使用docker快速搭建hive环境
    Spark Streaming高吞吐、高可靠的一些优化
    MySQL在同一个表上,删除查询出来的结果
    谈谈Hadoop MapReduce和Spark MR实现
    Java ThreadLocal的使用
    我能想到的最浪漫的Java网络教程之Socket,三步到位!!!
    Java中的不可变集合,我们换个方式理解!!!
    一个试图了解JVM内存模型的两年经验的初级程序员,透彻!
    异步文件通道Java NIO你需要了解多少,来看看这篇文章
  • 原文地址:https://www.cnblogs.com/moveofgod/p/15489901.html
Copyright © 2011-2022 走看看