Java连载83-单向链表、双向链表、collections常…
2020-02-15 16:01:36来源:博客园 阅读 ()
一、单向链表
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.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料。
原文链接:https://www.cnblogs.com/ruigege0000/p/12310405.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:多线程【基础】
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash