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

一、单向链表
1.单向链表:每个元素都称为节点(Entry),每个节点都由两部分组成
2.单向链表的注意点:
(1)单向链表每一个节点在内存中存储上在空间位置上是无规律的;
(2)为什么单向链表的查询效率变低?因为单向链表中的每个元素在空间的存储位置上没有规律,也没有顺序,那么在查找某个元素的时候,必须从头节点挨着往后找,直到找到为止。
(3)为什么单向链表的增删效率高?因为链表中每个元素存储空间是没有顺序的,删除或者添加某个元素,只需要让指针重新指向即可,不需要将其他元素进行唯一,所以随机增删效率高。

(4)伪代83.1

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.双向链表的注意点:
与单项链表的特点基本一致,查询效率变低,但是增删效率高

83.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 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[] 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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料。
83.3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值