Java连载83-单向链表双向链表collections常用方法

Posted 心悦君兮君不知-睿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java连载83-单向链表双向链表collections常用方法相关的知识,希望对你有一定的参考价值。

一、单向链表

1.单向链表:每个元素都称为节点(Entry),每个节点都由两部分组成

2.单向链表的注意点:

(1)单向链表每一个节点在内存中存储上在空间位置上是无规律的;

(2)为什么单向链表的查询效率变低​?因为单向链表中的每个元素在空间的存储位置上没有规律,也没有顺序,那么在查找某个元素的时候,必须从头节点​挨着往后找,直到找到为止。

(3)为什么单向链表的​增删效率高?因为链表中每个元素存储空间是没有顺序的,删除或者添加某个元素,只需要让指针重新指向即可,不需要将其他​元素进行唯一,所以随机增删效率高。

(4)伪代码

 

public class Linked{

  //节点

  Entry entry;

  //内部类

  static class Entry{

    Object o;

    Entry next;

   }

}

 

(5)举例代码

 

package com.bjpowernode.java_learning;

/**

 * 使用java语言用来模拟单向链表

 * @author lenovo1

 *

 */

public class D83_1_SingleLinkedList {

  public static void main(String[] args) {

   

  }

  //节点

  //Field

  Entry entry;

 

//  Constructor

  D83_1_SingleLinkedList(){

    //只有一个头节点

    entry = new Entry(null,null);

  }

     

  //静态内部类

  static class Entry{

    //Field

    Object data;

    Entry next;

    //Constructor

    Entry(){}

    Entry(Object data,Entry next){

      this.data = data;

      this.next = next;

    }

  }

}

 

二、双向链表

1.双向链表是一个环状。

2.双向链表的注意点:

与单项链表的特点基本一致,查询效率变低,但是增删效率高

 

3.伪代码

 

public class LinkedList{

  //节点

  Entry entry;

  //静态内部类

  static class Entry{

    Entry previous;

    Object data;

    Entry next;

  }

}

 

三、Collections集合的常用方法

1.boolean add(Object element);向集合中添加某个元素

2.void clear();清空集合

3.boolean contains(Object o);判断集合中是狗包含某个程序

4.boolean isEmpty();判断集合是否含有元素

5.Iterator<E> iterator();获取集合所依赖的迭代器对象

6.boolean remove(Object o);删除集合中某个元素

7.boolean removeAll(Collection<?> c)

移除此collections中那些也包含在指定collections中的所有元素(可选操作)

8.boolean retainAll(Collections<?> c)

仅保留此collectionss中那些也包含在指定collections的元素(可选操作)

9.int size()​;返回此collections中的元素数

10.Object[] toArray() ;返回包含此collections中的所有元素的数组

11.<T> T[] toArray(T[] a)返回包含此collections中的所有元素的数组,​;返回数组的运行是类型与指定数组的运行时类型​相同。​

五、源码:

D83_1_SingleLinkedList.java

D83_2_CollectionsCommonMethod.java

https://github.com/ruigege66/Java/blob/master/D83_1_SingleLinkedList.java

https://github.com/ruigege66/Java/blob/master/D83_2_CollectionsCommonMethod.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料。

 

 

以上是关于Java连载83-单向链表双向链表collections常用方法的主要内容,如果未能解决你的问题,请参考以下文章

链表的java实现(单向双向链表,单向链表的反转)

Java-链表(单向链表双向链表)

Java数据结构之双向链表

[单向链表与双向链表的实现]

Java数据结构线性表之链表

Java数据结构线性表之链表