zoukankan      html  css  js  c++  java
  • ht-3 linkedList特性

    LinkedList内部封装的是双向链表数据结构,每个节点是一个Node对象。 Node对象中封装的是要被添加的元素,还有一个指向上一个Node对象的引用和 指向下一个Node对象的引用 , 与ArrayList容器相比,不同的容器有不同的数据结构,不同的数据结构操作起来性能不同。 链表数据结构,做插入删除的效率比较高,但查询效率比较低 。 而数组结构(线性)做查询时效率高,可以直接通过下标来直接找到元素,但插入和删除效率低, 插入或删除元素后数组其他元素要做移位操作, 当需要频繁进行增删操作,使用LinkedList效率高,当只需要查询功能时,使用ArrayList容器效率高

     1 package com.iotek.list;
     2 
     3 import java.util.Iterator;
     4 import java.util.LinkedList;
     5 
     6 public class LinkedListDemo {
     7 
     8     public static void main(String[] args) {
     9 
    10         LinkedList<String> sList = new LinkedList<String>();
    11         // List<String> sList = new LinkedList<String>();
    12         // 使用List接口的引用变量,
    13         // sList.addFirst("chenchao");将会报错!!!因为List接口中没有这个方法,addFirst()和addLast()方法是Deque接口里特有的方法,
    14         // 子类有,父类没有的方法,只能由子类对象来调用,父类的引用变量不能调用子类特有的方法
    15         sList.add("zhangsan"); // 添加元素
    16         sList.add("lisi");
    17         sList.add("wangwu");
    18         sList.add("rose");
    19         sList.add("mary");
    20         sList.add("jack");
    21         sList.addFirst("chenchao"); // 在首位置添加一个元素
    22         sList.addLast("mandy"); // 在末尾位置添加一个元素
    23 
    24         System.out.println(sList.toString());
    25 
    26         // LinkedList实现了List接口,List实现了Collection,Collection又实现了Iterable接口,
    27         // 所以这里输出LinkedList容器中的元素,可以通过迭代器对象或者是foreach语句来输出
    28         Iterator<String> it = sList.iterator(); // 产生一个迭代器对象
    29         System.out.println("使用迭代器对象输出容器元素:");
    30         while (it.hasNext()) { // 判断容器中下一个元素不为空,则读取出来并赋给一个String类型的变量
    31             String name = it.next();
    32             System.out.print(name + " ");
    33         }
    34         System.out.println("
    " + sList.removeFirst());// sList.removeFirst()方法 移除并返回链表的第一个元素
    35         System.out.println("删除第一个元素后剩下的元素个数是:" + sList.size());
    36         sList.clear(); // 清空容器中的元素,在此处清空,pollFirst()会返回一个null
    37         System.out.println(sList.pollFirst());
    38         System.out.println(sList.size());
    39     }
    40 
    41 }

  • 相关阅读:
    【转载】Java系列笔记(3)
    CentOS 7下Samba服务器的安装与配置
    Linux常用目录结构
    Linux计划任务crontab
    转:Linux 双网卡配置两个IP同时只有一个会通的原因
    centos7中搭建ntp服务器
    centos7中使用vg方式扩充root分区
    ping命令脚本实现显示网络状态、学生姓名、学号
    centos中基于随机数,再加入班级学生姓名
    centos7 shell脚本实现随机数
  • 原文地址:https://www.cnblogs.com/enjoyjava/p/9385656.html
Copyright © 2011-2022 走看看