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

纯静态 网站app模板素材下载免费

纯静态 网站,app模板素材下载免费,win10 网站建设软件,人工智能培训心得体会集合 一、 迭代器模式(Iterator Pattern)二、 工厂模式(Factory Pattern)三、 装饰器模式(Decorator Pattern)四、 适配器模式(Adapter Pattern)五、 组合模式(Composite Pattern) Java 集合框架中的 List、Set、Map 以及其实现类都使用了多种经典的设计模式 一、 迭代器模式(I… 集合 一、 迭代器模式(Iterator Pattern)二、 工厂模式(Factory Pattern)三、 装饰器模式(Decorator Pattern)四、 适配器模式(Adapter Pattern)五、 组合模式(Composite Pattern) Java 集合框架中的 List、Set、Map 以及其实现类都使用了多种经典的设计模式 一、 迭代器模式(Iterator Pattern) 所有的集合接口(Collection、List、Set、Queue)和 Map 接口都定义了获取迭代器(Iterator)的方法,如 iterator()、listIterator()等。每个具体的集合实现类都提供了自己的迭代器实现,如 ArrayList 有 Itr、LinkedList 有 ListItr、HashMap 有 KeyIterator 和 ValueIterator 等。这些迭代器实现了 Iterator 接口,并对应集合的遍历算法。 以 ArrayList 为例,它的迭代器 Itr 实现如下: private class Itr implements IteratorE {int cursor; // 下一个要访问的元素索引int lastRet -1; // 最后一次返回的元素索引,方便删除操作// ... }二、 工厂模式(Factory Pattern) Collections 工具类中的静态工厂方法(如 nCopies、singletonList、unmodifiableList 等)可以创建各种不同的集合实例。为了方便创建Map.Entry实例Map接口提供了两个静态工厂方法SimpleEntry和SimpleImmutableEntry。这两个方法分别用来创建可变和不可变的Map.Entry实例。 public static T ListT singletonList(T o) {return new ImmutableCollections.SetNT(o); }三、 装饰器模式(Decorator Pattern) Collections 提供了一些修饰方法,用于对集合进行包装,如 synchronizedCollection、unmodifiableCollection 等。这些方法使用了装饰器模式,在原有集合上添加了同步或只读等额外功能。 public static T ListT synchronizedList(ListT list) {return (list instanceof RandomAccess ?new SynchronizedRandomAccessList(list) :new SynchronizedList(list)); }static class SynchronizedListE extends SynchronizedCollectionE implements ListE {// ... }四、 适配器模式(Adapter Pattern) Arrays.asList 方法可以将数组转换为 List 集合,使用了适配器模式。EnumerationIterator 和 IteratorEnumeration 则用于在旧集合 Enumeration 和新集合 Iterator 之间进行适配。 public static T ListT asList(T... a) {return new ArrayList(a); }五、 组合模式(Composite Pattern) 在Map接口中每个Map.Entry对象表示了一个键值对key-value pair包含了一个键和一个值。通过这种组合结构Map可以存储多个键值对并提供了方便的方式来操作这些数据。在Map接口的实现类如HashMap、TreeMap中每个键值对被表示为一个Map.Entry对象通过Map的方法可以进行各种操作。组合模式允许将对象组合成树形结构表示“部分-整体”的关系在Map.Entry接口中键和值构成了一个整体即键值对的Entry使得操作键值对变得简单方便。 Map抽象接口内部定义了一个Entry接口表示键值对。Entry接口包含了获取键、获取值、设置值、判断相等和获取哈希码等方法。 public interface MapK, V {// ...其他方法// 内部接口表示键值对interface EntryK, V {K getKey(); // 获取键V getValue(); // 获取值V setValue(V value); // 设置值返回旧的值boolean equals(Object o); // 判断是否相等int hashCode(); // 获取哈希码}// ...其他方法 } 具体的Map实现类如HashMap的 Node 内部类就是一个 Entry 的实现Node类实现了Map.Entry接口表示了键值对信息。它包含了键、值和下一个节点的引用等信息 static class NodeK,V implements Map.EntryK,V {final int hash;final K key;V value;//下一个节点的引用等信息NodeK,V next; // ... }在Java JDK 1.8中AbstractMap 和 AbstractSet 等抽象类使用了组合模式。AbstractMap 是一个抽象类它提供了Map接口的基本实现并使用了组合模式来包装具体的 Map 实现。在 AbstractMap 中最重要的部分是 entrySet() 方法该方法返回一个SetEntryK,V类型的集合表示 Map 的键值对集合。 public abstract class AbstractMapK,V implements MapK,V {// 返回一个包含所有 key-value 映射关系的 Set 集合public abstract SetEntryK,V entrySet();// 其他实现代码public static class SimpleEntryK,V implements EntryK,V, java.io.Serializable{private static final long serialVersionUID -8499721149061103585L;private final K key;private V value;// 构造函数// 实现 equals()、hashCode() 等方法} }在 AbstractMap 中entrySet() 方法返回的是一个 SetEntryK,V类型的集合。这里直接使用了 Java 中的 Entry 接口作为键值对的表示而实际上 Entry 是一个内部接口定义了对映射项key-value 对的操作。 AbstractMap 在内部使用了一个具体的实现类SimpleEntry来表示键值对但是对外部调用者来说只需要知道 entrySet() 方法返回的是一个 SetEntryK,V 集合而不需要关心具体的实现细节。 通过组合模式的设计AbstractMap 实现了 Map 接口的基本功能同时将具体的键值对信息封装在内部类中加强了封装性和灵活性
http://www.zqtcl.cn/news/255745/

相关文章:

  • 怎样建立门户网站怎么用wordpress模板
  • 潍坊专业建站wordpress建个人博客
  • 手把手网站开发网站建设违法行为
  • 网站模板插件做网站要审批吗
  • 建立网站如何盈利有哪些做室内设计好用的网站有哪些
  • 商城网站设计服务商网站开发时的闭包写法
  • 福建永安建设局网站如何在百度免费发布广告
  • 网站建设要用到哪些应用工具国际新闻最新消息今天2024年
  • 网站代码怎么打开门户网站建设目的
  • 个人网站开发项目总结做网站模板的网页名称是m开头
  • 响水哪家专业做网站win wordpress
  • 做图标去什么网站找微网页制作软件手机版
  • 网站开发源程序网页宣传方案
  • 做婚礼设计在哪个网站下载素材西安企业网站建设
  • 灵犀科技网站开发佼佼者门户网站建设和检务公开整改
  • php mysql做网站登录免费素材哪里找
  • 休闲食品网站建设网页设计网站实例
  • 微信网站结构58同城北京网站建设
  • thinkcmf做网站快不快南宁网站建设找哪家好
  • 百度网站类型西部数码官网
  • app和网站哪个难做如何做本地网站
  • 怎么做网站导航栏个性化定制产品
  • 如何做企业网站排名优化工业设计公司logo
  • 怎样制作网站教程中国建设银行总部网站
  • 美食网站建设规划书辽宁建设工程信息网中标通知
  • iis搭建网站教程深圳注册公司条件
  • 怎么优化网站关键词排名api接口开发网站开发
  • 如何提升网站的搜索排名秦皇岛黄页大全秦皇岛本地信息网
  • 学生作业网站笔记本可以做网站吗
  • 网站开发毕设开题报告在线设计网站源码