首页
学习
活动
专区
工具
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的问题,就是执行两遍查询,可以使用联表查询解决这个问题,结果集同样是使用的user,girlFriends作为集合映射到user的girlFriends属性。...,mybatis的懒加载似乎更好,拿第一个嵌套查询的栗子来说,如果开启了懒加载, 在不使用address的时候,只会执行查询user的sql,不会执行查询address的sql。...自定义类型处理器类继承BaseTypeHandler抽象类。 字段添加typeHandler属性,并指向自定义类型处理器类的路径

    38220

    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 的类型。

    69850

    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") 下面展示了将一个日期集合映射到日期字符串集合的格式化操作上

    9K20

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

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

    72020

    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

    Kotlin修炼指南(四)

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

    72910

    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 线程安全的集合 如果多线程要并发地修改一个数据结构,那会很容易破坏它。

    59520

    Java Stream中的StreamSupport类

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

    22110

    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.3K20

    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处理类(流式调用,媲美基于HttpClient的HCFluent),类似JQuery般操作HTML的Jerry

    1.6K20

    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

    53450

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

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

    1.4K20

    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 )。

    66040
    领券