LinkedList--链表

特点:

  删除,增加 用LinkedList性能高  层次查找不适合   

    查询用ArrayList  数组下标查找  插入和删除慢缺点是要做移位操作

  总结:LinkedList内部封装的是双向链表数据结构,每个节点是一个Node对象,Node对象封装的是你要添加的元素,

还有一个指向上一个Node对象的应用和指向下一个Node对象的引用,

不同的容器有不同的数据结构,不同的数据结构操作起来性能不一样

  扩展了AbstractSequentialList并实现List接口

提供链表数据结构

主要实现了Deque接口  Deque接口继承了Queue接口  一个线性collection,支持在两端插入和移除元素   队列(堆栈)操作

  

//不能使用List 因为addFirst addLast  在List接口中没有
LinkedList<String> lists = new LinkedList<String>();
//不能使用List 因为addFirst addLast  在List接口中没有
LinkedList<String> lists = new LinkedList<String>();
lists.add("张三");
lists.add("李四");
lists.add("王五");
lists.addFirst("tanlei");// 头添加
lists.addLast("marry");// 尾添加
/*Iterator<String> ss = lists.iterator();
// 使用迭代器进行统一遍历
while (ss.hasNext()) {
String name = ss.next();
System.out.println(name);
}*/
/*for(Iterator<String> ss = lists.iterator();ss.hasNext();) {
String name = ss.next();
System.out.println(name);
}*/
// 增强for循环遍历
for (String name : lists) {
System.out.println(name);
}
lists.clear();
System.out.println(lists.removeFirst());//删除并返回第一个元素,容器中没有元素返回异常
System.out.println(lists.size());
System.out.println(lists.pollFirst());//容器中没有元素返回null

栈和队列的功能  

栈:后进先出(杯子)

队列:先进先出

package com.day1;

import java.util.Iterator;
import java.util.LinkedList; public class LinkedListDemo2 {
public static void main(String[] args) {
/*MyStack<String> myStack = new MyStack<String>();
myStack.push("张三");
myStack.push("李四");
myStack.push("王五");
myStack.push("周六");
myStack.pop();// 出栈一个
myStack.pop();// 出栈两个
Iterator<String> it = myStack.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}*/ MyQueue<Integer> myQueue=new MyQueue<Integer>();
myQueue.push(1);
myQueue.push(2);
myQueue.push(3);
myQueue.push(4);
myQueue.pop();
myQueue.pop();
Iterator<Integer> it = myQueue.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
} class MyStack<T> {
private LinkedList<T> data = null; public MyStack() {
data = new LinkedList<T>();
} // 压栈方法
public void push(T obj) {
data.addFirst(obj);
} // 出栈
public T pop() {
return data.removeFirst();
} public Iterator<T> iterator() { return data.iterator(); } } class MyQueue<T> {
private LinkedList<T> data = null; public MyQueue() {
data = new LinkedList<T>();
} public void push(T obj) {
data.addFirst(obj);
} public T pop() {
return data.removeLast();
} public Iterator<T> iterator() { return data.iterator(); } }

List容器-LinkedList链表的更多相关文章

  1. java集合之linkedList链表基础

    LinkedList链表: List接口的链接列表实现.允许存储所有元素(包含null).使用频繁增删元素. linkedList方法: void addFirst(E e) 指定元素插入列表的开头 ...

  2. List容器——LinkedList及常用API,实现栈和队列

    LinkedList及常用API ①   LinkedList----链表 ②   LinkedList类扩展AbstractSequentialList并实现List接口 ③   LinkedLis ...

  3. 容器--LinkedList

    一.前言 上一篇我们介绍了List的重要实现之一ArrayList,  在大多数情况下,我们写代码时会直接使用到ArrayList,因为其在随机访问的优势是其它List无法比拟的.除了ArrayLis ...

  4. Java集合类之LinkedList链表

    package com.test; import java.util.*; public class Demo7_3 { public static void main(String[] args) ...

  5. 容器LinkedList原理(学习)

    一.概述 数据结构和ArrayList有本质不同,LinkedList 是基于链表实现,它的插入和删除操作比 ArrayList 更加高效,基于链表的,所以随机访问的效率要比 ArrayList 差. ...

  6. LinkedList -链表集合

    package cn.learn.collection; import java.util.LinkedList; import java.util.Queue; /* java.util.xxx A ...

  7. Java学习之集合(LinkedList链表集合)

    一.什么是链表集合,通过图形来看,比如33只知道它下一个是55 如果:现在要删除33的话,就是把55赋值给45,这样看它操作集合速度会非常快. 二.LinkedList特有方法 1.添加 addFir ...

  8. java LinkedList(链表)

    LinkedList也像ArrayList一样实现了基本的List接口,但是它执行某些操作(在List的中间插入和移除)时比ArrayList更高效,但在随机访问方面却要逊色一些 LinkedList ...

  9. golang数据结构和算法之LinkedList链表

    差不多自己看懂了,可以自己写测试了.:) LinkedList.go package LinkedList //"fmt" type Node struct { data int ...

随机推荐

  1. DLINK 企业路由器内网部署web开启端口转发后还需要开启是否支持端口回流功能

    跑后台使用的服务器,配置一般都很低,带宽只有2Mb 一些大型文件比如app的更新包使用这种服务器不可行 但是公司的网络是100Mb对等静态ip专线 所以能利用起来,每年将会省下8万块 说干就干,这个步 ...

  2. 【DM642】H.264源代码在DM642上的移植

    TI公司提供了用于C语言开发的CCS(Code Composer Studio),该平台包括了优化的ANSI编译器,使之可以使用C语言开发DSP程序.这种方法不仅使DSP开发的速度大大加快,而且DSP ...

  3. jquery同级遍历

    siblings() 返回被选元素的所有同胞元素. next() 返回被选元素的下一个同胞元素. nextAll() 方法返回被选元素的所有跟随的同胞元素. nextUntil() 方法返回介于两个给 ...

  4. Mycat+MySQL 主从复制

    一.主从复制搭建(新环境5.6.33)1.设置复制Master配置信息 [mysqld] #repl master库 server \logbin\mysql-bin max_binlog_size= ...

  5. sql 书写顺序

    SELECT select_list [ INTO new_table ] FROM table_source [ WHERE search_condition ] [ GROUP BY group_ ...

  6. Java中移动文件或目录的方法盘点

    本文不再更新,可能存在内容过时的情况,实时更新请移步原文地址:Java中移动文件或目录的方法盘点: import org.apache.commons.io.FileUtils; import jav ...

  7. JAVA面试常见问题之设计模式篇

    1.常见的设计模式 单例模式.工厂模式.建造模式.观察者模式.适配器模式.代理模式.装饰模式. 参考:https://www.cnblogs.com/cr330326/p/5627658.html 2 ...

  8. Web前端开发的就业前景怎么样,薪资待遇如何

    信息技术的迅速发展,使IT技术者们赶上了一个百年难遇的好机会,尤其是国家出台了“互联网+”的政策后,更是催生了IT行业的就业空间,使其呈现爆发性增长. 如今,微信逐渐成为了大家主要的交流工具,随着各种 ...

  9. Scanner读取记事本文件内容为空的解决办法

    原因:记事本txt文件中含有中文,windows记事本编码方式为gbk,但是eclipse中为utf-8,所以需要在Scanner中指定编码方式.

  10. ES6 新的数据类型Map和Set

    Map Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Array: var names = ['Michael', 'Bo ...