当前位置: 首页 > news >正文

软件网站建设重庆广告公司

软件网站建设,重庆广告公司,亚马逊跨境电商官方网站,jsp简单的网站开发例子目录vector的特点LinkedList底层结构模拟双向链表比较ArrayList和LinkedListSet接口基本介绍Set接口的遍历方式Set接口实现类对象的特点Set接口实现类HashSet模拟HashSet/HashMap的底层结构vector的特点 Vector底层是一个对象数组Vector是线程同步的,即线程安全的&…

目录

      • vector的特点
      • LinkedList底层结构
        • 模拟双向链表
        • 比较ArrayList和LinkedList
      • Set接口
        • 基本介绍
        • Set接口的遍历方式
        • Set接口实现类对象的特点
        • Set接口实现类HashSet
        • 模拟HashSet/HashMap的底层结构

vector的特点

  • Vector底层是一个对象数组
  • Vector是线程同步的,即线程安全的,Vector类的操作方法带有synchronize(带锁也就意味着效率有所降低)

LinkedList底层结构

  • LinkedList底层实现了双向链表和双端队列
  • 可以添加任意元素(元素可以重复),包括null
  • 线程不安全,没有实现同步
  • LinkedList中维护了两个属性first和last,分别指向首结点和尾结点
  • 每个节点(Node对象)里面又维护了prev、next、item三个属性,其中通过prev指向前一个结点,通过next指向后一个结点。最终实现双向链表
    在这里插入图片描述

模拟双向链表

package cs.kaoyan.javase.com.list7;public class Test4 {public static void main(String[] args) {Node zs = new Node("zhang san");Node ls = new Node("li si");Node ww = new Node("wang wu");//zs -> ls -> wwzs.next = ls;ls.next = ww;//zs <- ls <- wwww.prev = ls;ls.prev = zs;//设置头结点Node first = zs;//设置尾结点Node last = ww;//从头到尾遍历双向链表//zhang san -> li si -> wang wu//一般不直接对头结点进行操作Node temp1 = first;while (true){if (temp1 == null){//遍历结束break;}System.out.println(temp1.item);temp1 = temp1.next;}System.out.println("-------------");//从尾往头遍历//wang wu -> li si -> zhang sanNode temp2 = last;while (true){if (temp2 == null){//遍历结束break;}System.out.println(temp2.item);temp2 = temp2.prev;}//模拟插入操作//zhang san -> li si -> zhao liu -> wang wuNode zl = new Node("zhao liu");zl.next = ww;zl.prev = ls;ls.next = zl;ww.prev = zl;System.out.println("-------------");//再次从头到尾遍历//zhang san -> li si -> zhao liu -> wang wuNode temp3 = first;while (true){if (temp3 == null){//遍历结束break;}System.out.println(temp3.item);temp3 = temp3.next;}}
}class Node{public Object item;//存放数据public Node prev;//指向前一个结点public Node next;//指向后一个结点//单参构造方法public Node(Object item) {this.item = item;}
}

比较ArrayList和LinkedList

在这里插入图片描述

  • 如果我们改查的操作多,选择ArrayList(底层结构决定改查的效率)
  • 如果我们增删的操作多,选择LinkedList3
  • 一般来说,在程序中,80% ~ 90%都是查询,因此大部分情况下会选择ArrayList
  • 在一个项目中,根据业务灵活选择,可以一个模块使用的是ArrayList,另外一个模块是LinkedList

Set接口

基本介绍

  • 无序(添加和取出的顺序不一致)
  • 没有索引不允许重复元素
  • 最多包含一个null(不允许元素重复)
  • 和List接口一样,Set接口也是Collection的子接口,因此常用方法和Collection接口一样

Set接口的遍历方式

同Collection的遍历方式一样,因为Set接口是Collection接口的子接口

  • 可以使用迭代器遍历
  • 增强for遍历
  • 不能使用索引的方式来遍历

Set接口实现类对象的特点

  • Set接口的实现类的对象(Set接口对象),不能存放重复的元素,可以添加一个null
  • Set接口对象存放数据是无序(即添加的顺序和取出的顺序不一致)
  • 取出的顺序虽然不是添加的顺序,但是他的固定,在元素固定的时候不会改变
  • 总结:无序且唯一
package cs.kaoyan.javase.com.set;import java.util.HashSet;public class Test {public static void main(String[] args) {HashSet set = new HashSet();set.add("zhang san");set.add("li si");set.add("wang wu");set.add("wang wu");set.add("zhao liu");set.add("zhao liu");set.add(null);for (int i = 0; i < 10; i++) {System.out.println(set);}
/*
[null, wang wu, zhang san, li si, zhao liu]
[null, wang wu, zhang san, li si, zhao liu]
[null, wang wu, zhang san, li si, zhao liu]
[null, wang wu, zhang san, li si, zhao liu]
[null, wang wu, zhang san, li si, zhao liu]
[null, wang wu, zhang san, li si, zhao liu]
[null, wang wu, zhang san, li si, zhao liu]
[null, wang wu, zhang san, li si, zhao liu]
[null, wang wu, zhang san, li si, zhao liu]
[null, wang wu, zhang san, li si, zhao liu]*/}
}

Set接口实现类HashSet

  • HashSet实现了Set接口
  • HashSet实际上是HashMap
public HashSet() {map = new HashMap<>();
}
  • 可以存放null值,但是只能有一个null
  • HashSet不保证元素是有序的
  • 不能有重复元素

模拟HashSet/HashMap的底层结构

package cs.kaoyan.javase.com.set;/*** 模拟HashSet/HashMap的底层结构*/
public class Test2 {public static void main(String[] args) {//创建一个数组,类型是NodeNode[] table = new Node[5];//新建一个"张三"结点Node zs = new Node("zhang san", null);//数组下标为1的位置指向张三table[1] = zs;Node ls = new Node("li si", null);zs.next = ls;Node ww = new Node("wang wu", null);ls.next = ww;Node zl = new Node("zhao liu", null);ww.next = zl;}
}class Node{Object item;//存放数据Node next;//指向下一个结点//构造器public Node(Object item, Node next) {this.item = item;this.next = next;}
}

在这里插入图片描述

http://www.shuangfujiaoyu.com/news/39012.html

相关文章:

  • 高端网站设计需求有哪些搜索引擎优化的根本目的
  • 关于网站建设的网络诈骗的案例企业qq一年多少费用
  • 网站结构是什么附近的电脑培训班在哪里
  • 苹果的网站怎么做的win7优化大师下载
  • 网站建站建设网站seo关键词排名优化怎样收费
  • 专业做苗木的网站seo案例
  • 丽水专业网站建设公司怎么弄自己的网站
  • 网站建设的一些销售技巧培训课程开发
  • 网站怎样做才能有点击率营销网站大全
  • 基层政府门户网站建设的问题360优化大师app下载
  • 怎么做自己的音乐网站百度广告联盟官网
  • 阿里巴巴做短视频网站市场营销一般在哪上班
  • 社区论坛网站建设策划方案网站
  • 柳城企业网站建设价格宁波关键词网站排名
  • 做网站需要多少钱啊如何做好网站的推广工作
  • 临沂市住房城乡建设委官方网站建立网站的几个步骤
  • 厦门哪家公司做网站天津seo排名费用
  • 网站模板怎么用dreamweaver编辑苏州百度搜索排名优化
  • 在线ps图片制作google关键词优化
  • 个人做网站能赚钱吗百度合伙人答题兼职赚钱
  • 淘宝代码网站有哪些云计算培训费用多少钱
  • 网址大全下载app百度搜索关键词排名优化推广
  • 源码资源上海网站seoseodian
  • 网站建设服务热线seo接单
  • 网站展示型广告口碑营销的模式
  • 防腐木做水车网站网站关键词排名批量查询
  • 网站建设前期准备工作百度seo推广首选帝搜软件
  • 网页设计网站制作收获企业推广方法
  • 高端终端网站设计类网站凡科建站
  • 网站开发最快框架沐浴露营销软文