首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

要使用嵌套的通用集合还是自定义中间类?

通用集合和自定义中间类都可以用于实现集合,但它们有着不同的特点和适用场景。

通用集合是一种常见的集合类型,它提供了各种操作方法,例如添加、删除、查找等,同时还提供了序列化和反序列化的方法。在大多数情况下,通用集合是用于存储和管理一组对象的最简单和方便的方式。通用集合可以存储任何类型的数据,因此它们可以用于存储对象树,并且可以方便地通过递归来处理树中的每个节点。

自定义中间类是一种特殊类型的类,它可以在编译时确定类中的方法,并且可以在运行时动态地确定类中的方法。自定义中间类通常用于实现集合,因为它们可以更好地控制集合的行为,例如对集合中的元素进行排序、过滤和转换等。

在大多数情况下,如果集合中的元素类型相同,或者集合只是用于存储和管理一组对象,那么通用集合是更好的选择。如果集合中的元素类型不同,或者集合需要更强的定制性,那么自定义中间类可能是更好的选择。

因此,无法简单地说出一个集合是通用集合还是自定义中间类,需要根据具体情况来选择最适合的集合类型。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于领域模型转换那些事儿

我们抽象出数据访问层后,只需要保证对外提供接口不变,底层数据库使用Oracle还是MySql,上层结构是感知不到。...对Service层通用能力下沉,如缓存方案/中间通用处理。 与DAO层交互,对多个DAO组合复用。 DAO层:数据访问层,与底层MySQL、Oracle、HBase等进行数据交互。...能不能只复制一部分属性 能不能自定义转换逻辑 嵌套对象是深拷贝还是浅拷贝 这么多需要考虑地方,咱们怎么处理,才能优雅进行模型转换呢?...: 支持多种数据类型自动转换(双向) 支持不同属性名之间转换 支持三种映射配置方式(注解方式,API方式,XML方式) 支持配置忽略部分属性 支持自定义属性转换器 嵌套对象深拷贝 第八种,MapStruct...比如较低层DO,因为涉及到嵌套对象少,改动也少,所以可以使用BeanUtils直接转。如果是速度、稳定优先系统,还是乖乖使用Set、Get实现吧。

1.1K10

Flink实战(三) - 编程范式及核心概念

如果“导航”到嵌套Tuple2中,则必须使用下面解释字段表达式键。...可以使用字段名称tuple.f4直接访问元组字段,也可以使用通用getter方法tuple.getField(int position)。 字段索引从0开始。...7.4 General Class Types Flink支持大多数Java和Scala(API和自定义)。 限制适用于包含无法序列化字段,如文件指针,I / O流或其他本机资源。...它们不是通过通用序列化框架,而是通过使用读取和写入方法实现org.apache.flinktypes.Value接口来为这些操作提供自定义代码。当通用序列化效率非常低时,使用值类型是合理。...一个示例是将元素稀疏向量实现为数组数据类型。知道数组大部分为零,可以对非零元素使用特殊编码,而通用序列化只需编写所有数组元素。

1.5K20
  • Flink DataStream编程指南

    为了指定数据源,执行环境有几种使用各种方法从文件中读取方法:您可以逐行阅读它们,如CSV文件,或使用完全自定义数据输入格式。...如果正确使用,则必须使用下面说明field expression 。...4,General Class Types Flink支持大多数Java和Scala(API和自定义)。限制使用于包含无法序列化字段,如文件指针,I / O流或其他本机资源。...他们提供实现了org.apache.flinktypes.Value (具有read和write方法)接口自定义代码操作算子,而不是使用通用框架。...我们还计划在下一次迭代中使上一次迭代结果可用。您可以使用聚合器来计算每次迭代统计数据,并且基于此类统计信息迭代结束。 2,自定义累加器 实现自己累加器,你只需要编写你累加器接口实现。

    4.3K70

    Mybatis新手进阶知识点,老鸟请走开

    用起来方便,用好很难,有些老项目还在用。 Mybatis半自动ORM框架,本文主角,被广泛使用,它支持自定义 SQL、存储过程以及高级映射。...id为selectAddressByUserId查询:根据用户id查询地址详情: 嵌套结果 上面的查询会有N+1问题,就是执行两遍查询,可以使用联表查询解决这个问题,结果集同样是使用<resultMap...myabtis会自动合并重复user,girlFriends作为集合映射到usergirlFriends属性。...,mybatis懒加载似乎更好,拿第一个嵌套查询栗子来说,如果开启了懒加载, 在不使用address时候,只会执行查询usersql,不会执行查询addresssql。...自定义类型处理器继承BaseTypeHandler抽象。 字段添加typeHandler属性,并指向自定义类型处理器路径

    37220

    Flink实战(三) - 编程范式及核心概念

    如果“导航”到嵌套Tuple2中,则必须使用下面解释字段表达式键。...可以使用字段名称tuple.f4直接访问元组字段,也可以使用通用getter方法tuple.getField(int position)。 字段索引从0开始。...7.4 General Class Types Flink支持大多数Java和Scala(API和自定义)。 限制适用于包含无法序列化字段,如文件指针,I / O流或其他本机资源。...它们不是通过通用序列化框架,而是通过使用读取和写入方法实现org.apache.flinktypes.Value接口来为这些操作提供自定义代码。当通用序列化效率非常低时,使用值类型是合理。...一个示例是将元素稀疏向量实现为数组数据类型。知道数组大部分为零,可以对非零元素使用特殊编码,而通用序列化只需编写所有数组元素。

    1.4K40

    C#2.0新增功能02 泛型

    T,可以编写其他客户端代码能够使用单个,而不会产生运行时转换或装箱操作成本或风险,如下所示: // 定义通用泛型 public class GenericList { public...泛型通常与集合以及作用于集合方法一起使用。 .NET Framework 2.0 版库提供新命名空间 System.Collections.Generic,其中包含几个新基于泛型集合。...建议所有定目标到 .NET Framework 2.0 及更高版本应用程序都使用新增泛型集合,而不是旧非泛型集合(如 ArrayList)。 有关详细信息,请参阅 .NET 中泛型。...当然,也可以创建自定义泛型类型和泛型方法,以提供自己通用解决方案,设计类型安全高效模式。 以下代码示例演示了出于演示目的简单泛型链接列表。...其使用方法如下: 在 AddHead 方法中作为方法参数类型。 在 Node 嵌套中作为 Data 属性返回类型。 在嵌套中作为私有成员 data 类型。

    69350

    java开发中DTO、VO、PO之间转换你应该这么操作

    痛点 一种框架出现都要解决个痛点,我想下面这这种不方便操作经常有人写吧。 假如Car 是数据库映射 ? ? CarDTO是DTO ? 通常我们会这么写一个方法进行转换 ?...甚至中间还牵涉了很多类型转换,嵌套之类繁琐操作,而我们想要只是建立它们之间映射关系而已。有没有一种通用映射工具来帮我们搞定这一切。当然有而且还不少。...so,今天就搞一搞MapStruct, 无论是idea 还是eclipse 都建议安装 mapstruct 插件。 安装 引入maven 依赖坐标 ?...这里以成员变量参数名为依据,如果有嵌套比如Car里面有个CarType类型成员变量type,其type属性 来映射CarDTO中type字符串,我们使用type.type 来获取属性值。...这是处理数字格式化操作,遵循java.text.DecimalFormat规范 @Mapping(source = "price", numberFormat = "$#.00") 下面展示了将一个日期集合映射到日期字符串集合格式化操作上

    8.7K20

    SpringBoot 核心模块原理剖析

    spring-boot-autoconfigure 模块 Spring出现给我们管理 Bean 依赖注入提供了便捷,但是当我们需要使用通过 pom 引入 jar 里面的一个 Bean 时候,还是需要手动在...spring-boot-loader 模块则允许我们使用 java -jar archive.jar 方式运行包含嵌套依赖 jar jar 或者 war 文件,它提供了三种启动器(JarLauncher...那么我们自定义 URLClassLoader 什么时候使用呢?...为了使用这个自定义 URLClassLoader,可以想办法让我们自定义 URLClassLoader 来加载我们 main 函数,但是一个逃离不了现实是当使用 Java 命令启动 main 函数所在时候使用总是...具体来说是使用 Java 命令启动时候启动一个中间 main 函数,这个中间里面自定义 URLClassLoader,然后使用自定义 URLClassLoader 来加载我们真正 main 函数

    1.5K90

    面试官:请讲一下MyBatis是如何关联关系?

    嵌套查询是在查询SQL中嵌入一个子查询SQL; 嵌套查询会执行多条SQL语句; 嵌套查询SQL语句编写较为简单; 第二种: 嵌套结果是使用嵌套结果映射来处理重复联合结果子集。...嵌套结果是一个嵌套多表查询SQL; 嵌套结果只会执行一条复杂SQL语句; 嵌套结果SQL语句编写比较复杂; “虽然使用嵌套查询方式比较简单,但是嵌套查询方式执行多条SQL语句,这对于大型数据集合和列表展示不是很好...-- 嵌套结果:使用嵌套结果映射来处理重复联合结果子集 --> <select id="findPersonById2" parameterType="Integer"...-- 一对多关联映射:collection ofType表示属性集合中元素类型,List属性即Orders --> <collection property="ordersList...在数据库中,多对多<em>的</em>关联关系通常<em>使用</em>一个<em>中间</em>表来维护,<em>中间</em>表中<em>的</em>订单id作为外键参照订单表<em>的</em>id,商品id作为外键参照商品表<em>的</em>id。

    68420

    Kotlin修炼指南(四)

    更加复杂,还可以使用Sealed Class来创建嵌套密封逻辑,例如前面的Error中,还可以封装更为详细Error类型,在这样场景下,Sealed Class优势就能更一步体现出来了,代码如下所示...拓展in操作符 in操作符具有很强语义性,所以在自定义中,重载in操作符,可以简化很多操作,特别是在when条件判断中,例如在Collection中,Kotlin就重载了in操作符,提供了更加方便判断...,在自定义中重载in操作符,例如给正则增加in操作符,用来判断匹配类型,代码如下所示。...调用map函数,这是一个中间操作,所以Sequence会将转换操作信息存储到一个列表中,该列表只会存储执行操作,但并不会执行这些操作。...综上所述,它们差异如下。 使用Sequence是不会去创建中间集合,但会创建中间操作集合,在执行末端操作时,由于Item会被逐个执行,所以中间操作只会作用到部分Item上。

    71010

    Java Stream中StreamSupport

    因此,StreamSupport在将传统集合自定义数据源转换为Stream时起着关键作用。...二、StreamSupport核心功能 StreamSupport提供了几个静态方法,用于将Spliterator转换为不同类型Stream: 通用Stream转换: static <T...这里parallel参数通常由集合stream()或parallelStream()方法传入,以指示生成Stream是顺序还是并行。...四、StreamSupport使用 日常开发中很少直接调用StreamSupport方法来创建Stream(因为集合已经为我们提供了stream()和parallelStream()方法),但在以下场景中...,了解StreamSupport存在和用途仍然是有益自定义数据源:如果你正在处理一个自定义数据源,并且想要利用Stream API来处理这些数据,那么你可能需要手动创建一个Spliterator

    12410

    Mongoose学习参考文档

    当然这样更新很麻烦,可以使用$set属性来配置,这样也不用先查询,如果更新数据比较少,可用性还是很好: PersonModel.update({_id:_id},{$set:{name:'...Document children2:[ChildSchema2] //嵌套Documents }); Sub-Docs享受和Documents一样操作,但是Sub-Docs操作都由父去执行...属性 8.Middleware中间件 8.1 什么是中间件   中间件是一种控制函数,类似插件,能控制流程中init、validate、save、remove`方法 8.2 中间分类   中间件分为两...(...); schema.pre('save',function(next,done){ //下一个执行中间件并行执行 next(); doAsync(...done); }); 8.3 中间件特点   一旦定义了中间件,就会在全部中间件执行完后执行其他操作,使用中间件可以雾化模型,避免异步操作层层迭代嵌套 8.4 使用范畴 复杂验证 删除有主外关联

    24.2K90

    《Java核心技术 卷I:基础知识》读书笔记

    中间可以使用getClass().getName()获得字符串。 5.3 泛型数组列表 Java允许在运行时确定数组大小。...public static final 每个只能有一个超,但是可以实现多个接口. 6.1.2 接口与抽象 使用抽象表示通用属性时会存在一个问题:每个只能扩展于一个,这使得多个通用属性不能共存...当想要使用一个回调函数而又不想编写过多代码时,可以使用匿名内部类。 C++使用嵌套嵌套之间关系而并不是对象之间关系。对于一个嵌套,可能并不会实现嵌套。...与泛型集合相比,链表是有序集合,其add方法可以将对象添加到链表尾部或中间(由迭代器实现)。...实际编程应该尽量原理基本结构,并使用高层结构。 java.util.concurrent包提供了阻塞队列几个变种。 14.7 线程安全集合 如果多线程并发地修改一个数据结构,那会很容易破坏它。

    58220

    Jodd - Java界瑞士军刀轻量级工具包!

    Jodd介绍 Jodd是对于Java开发更便捷开源迷你框架,包含工具、实用功能集合,总包体积不到1.7M。 Jodd构建于通用场景使开发变得简单,但Jodd并不简单!...Jodd工具包 高性能工具集合 TypeConverter 一个强大类型转换工具 BeanUtil 高效 Bean 工具,支持嵌套属性,以及标准集合 Base64/Base32 JDateTime...MVC框架 自动扫描 Actions & Results 参数自动注入,支持嵌套属性注入,支持标准集合参数注入 自动导出需要输出参数 支持通配符/正则表达式路由地址 支持 REST 风格 URL...支持通过配置文件设置 Action 拦截器 开放 API,可轻松扩展 HTTP 轻量级Http客户端 基于socket 支持 cookies 支持上传文件 支持自定义 HTTP 头 支持 gzip...MVC、IOC/DI、ORM统统使用自有解决方案(想想Spring),加上简化而优雅Http处理(流式调用,媲美基于HttpClientHCFluent),类似JQuery般操作HTMLJerry

    1.5K20

    Java基础笔记16

    16.02_集合框架(去除ArrayList中重复自定义对象元素) A:案例演示 需求:ArrayList去除集合自定义对象元素重复值(对象成员变量值相同) B:注意事项 重写equals...16.09_集合框架(泛型概述及使用) A:泛型概述 把泛型定义在上 B:定义格式 public class 名 C:注意事项 泛型类型必须是引用类型 D:案例演示...(三种迭代能否删除) 普通for循环,可以删除,但是索引-- 迭代器,可以删除,但是必须使用迭代器自身remove方法,否则会出现并发修改异常 增强for循环不能删除 16.16_集合框架(静态导入概述和使用...如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个 16.18_集合框架(Arrays工具asList()方法使用) A:案例演示 Arrays工具asList()方法使用...Collection中toArray(T[] a)泛型版集合转数组 16.19_集合框架(集合嵌套之ArrayList嵌套ArrayList) A:案例演示 集合嵌套之ArrayList嵌套ArrayList

    52550

    Mybatis中三种关联关系实现

    ,传递给目标 select 语句作为参数; 一对多查询 数据表实现:使用一个外键进行关联,外键放在多方表中; 关联属性:可以写在一方实体中也可以写在多方实体中; 写在一方中,使用list或别的集合进行关联...中一样是对集合里面的属性进行映射; 多表单独查询(嵌套查询): ?...当然,也可通过子栏目查找它所有的父栏目; 多对多查询 数据表:需要用一张中间表表示多对多关系,这张中间表引入两张表主键作为外键; 查询方式: 多表连接查询,不需要定义中间表实体 多表嵌套查询,需要定义中间表实体...多表复杂查询,不需要定义中间表实体,但是返回值是一个List; 多表嵌套查询定义中间实体: 由于两张表之间分别单独查询,需要通过中间表查找关联并使用resultMap进行映射关系处理,resultMap...需要指明映射java,并在实体中定义关联属性才可以得到关联属性信息;简单来说:一张表查询完之后想要得到另一张表信息,实际上是通过中间表来进行映射得到另一张表信息; 多表复杂查询:通过一张表先和中间表进行连接查询

    2.4K20

    【Java百炼成神】双生武魂——HashMap、LinkedHashMap、Hashtable

    文章目录 集合概述 Map概述 HashMap基本使用 HashMap遍历 Map-value存储自定义类型 LinkedHashMap Hashtable  集合嵌套 集合-判断操作 准备工作...Map-value存储自定义类型 同其他集合一样,Map key 或 value 都可以存储自定义类型对象:  ​ 建议:1、使用 value 存储自定义对象。 ...集合嵌套 集合嵌套并不是一个新知识点,和 if 嵌套、for 嵌套一样,仅仅是格式上内容。   ...,基础班 Map>  集合-判断操作 准备工作【重要】 集合元素若为自定义对象,需要在自定义中选中对应方法,才能进行集合元素判断操作。 ...但如果集合中是自定义使用 contains 方法之前,则需要重写 equals 方法。  例如:定义一个 Person (姓名 name 和 年龄 age )。

    64840

    Excel催化剂功能第4波-一大波自定义函数高级应用,重新定义Excel函数学习和使用方法

    掌握IF函数已经可以进入编程世界,因其就是一个改变结构流向选择结构 此次3个参数框,每个参数框填内容都有相应要求 如第1参数就是一个判断语句,告诉函数最终输出第2还是第3个参数内容 在参数框里输入文本...函数嵌套误区 并非函数嵌套用得多就是所谓函数高手,函数嵌套用得太多,可读性差,维护性差,是一个不好习惯,若是可行,另起一个辅助列计算中间结果替代使用潜逃函数未常不是一个好方案。...此部分正则函数使用是.NET平台正则库,VB/VBA那可是2000年前老古董,这么说你就懂了。 ? Excel2016加入新函数ConCat,你还一直苦苦地等待着么?...一个简单自定义函数已经秒杀住它了 通用于Excel2007及以上版本使用 ? 有类似Sumif、Countif按条件聚合效果 ?...因Excel催化剂自定义函数实现了一种惊艳数组公式效果,只需在一个单元格里输入数组公式,不需CTRL+SHIFT+ENTER组合键,除更新外其他三个功能(选择、删除、数值化)都通用于一般数组公式

    1.4K20

    MLIR:摩尔定律终结编译器基础结构 论文解读

    MLIR通过可扩展Operation和Type集合,为包含异构特性高级语言提供直接嵌入手段,同时提供了一个通用基础结构,可逐步lowering这些结构,并最大程度地在不同目标之间重用通用组件。...序列化和互操作性格式有不同方法解决ML前端多样性问题,例如,ONNX[48]方法是通过提供不同框架都可以映射通用op集合。...MLIR没有固定Op集合,因此允许并鼓励用户自定义扩展Op。...号中间内容描述了张量尺寸2x3和张量中存储数据类型f64,中间使用x连接。 loc("example/file/path":12:1):此操作源代码中位置。...「因此,MLIR pass管理器也不专门针对固定Op集合,而是针对任意嵌套级别的任意Op。」 「并行编译」 MLIR一个重要需求是利用多核计算机来加快编译速度。

    2.2K20

    Redux中间件Middleware不难,我信了^_^

    但是我觉得这样写,对于其他合作小伙伴不友好,相当于我自己写了一套语法出来。最好还是使用官方store.dispatch时候,自定义函数一起执行了。...也就是我需要多个中间件,那么该如何实现呢? 我们可以将每次变异store.dispatch都传递给一个新参数,传入下一次变异之中执行,但是像这样next1,next2……这样源源不断地下去吗?...在实现compose方法之前我们先考虑一个问题,现在middlewares结构是这样,多层嵌套,一个函数嵌入一个函数,我们改如何将这个方法从嵌套中解放出来呢?...next参数,传入中间集合之中,最先推入栈函数,是最后执行,因次我们dispatch会在最后一层函数执行。...但是有以下几点需要注意下: 自定义中间件可以获取到createStoredispatch(action)和getState()方法。

    53341
    领券