Java规则集和映射

一、规则集

首先:在测试一个元素是否在规则集或者线性表的方面,规则集比线性表高效。不过线性表的元素可以使用索引下标访问,规则集只能用foreach遍历。

1、HashSet

实现了Set接口的具体类,可由无参构造创建,或者使用一个现有集合创建。默认容量大小16,负载系数0.75。随着内容增加而自动扩充容量。

用来存储不重复的元素,但规则集中的元素没有特定顺序,跟元素插入集合的顺序无关。如要强加顺序,则使用LinkedHashSet类。

Set<?> set = new HashSet<>();

2、LinkedHashSet

使用一个链表实现来扩展HashSet类。其中元素可以按照插入规则集的顺序排序,但没有HashSet高效。

Set<?> set = new LinkedHashSet<>();

3、TreeSet

可使用无参构造创建,或使用现有的set集合创建。其中元素按照元素大小进行排序。

Set<String> set=new java.util.HashSet<>();

TreeSet<String> treeSet = new TreeSet<>(set); //从集合创建

TreeSet<String> treeSet1 = new TreeSet<>();//无参构造
treeSet1.addAll(set);

二、映射

使用HashMap、LinkedHashMap、TreeMap这个三个具体类创建映射。
映射是一种存储“键值对”集合的容器对象,键可以是任何数据类型,但不能重复。

1、HashMap

HashMap类对于定位一个值、插入一个条目,删除一个条目而言是十分高效的。

2、LinkedHashMap

LinkedHashMap用链表扩展了HashMap类,支持映射中的排序,有两种排序方法。

①、插入排序:按照插入顺序排序。
②、访问顺序:按照最后一次被访问的顺序。从最早到最晚。

无参构造方法以 插入顺序 创建链式散列映射LinkedHashMap,如需使用访问顺序则使用构造方法:LinkedHashMap(initialCapacity,loadFactor,true)

3、TreeMap

TreeMap对应的是按照 排好顺序的映射,遍历高效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis提供了多种方式来处理复杂的结果集映射。以下是一些常见的技术和方法: 1. 嵌套查询(Nested Queries:可以使用嵌套来处理一对一、一对多和多对多的关联关系。通过定义嵌套的resultMap,可以将结果集映射到包含嵌套对象的复杂数据结构中。 2. 关联查询(Association):通过使用association标签,可以将关联对象映射到主对象中。这适用于一对一和多对一的关联关系。 3. 集合查询(Collection):通过使用collection标签,可以将集合对象映射到主对象中。这适用于一对多和多对多的关联关系。 4. resultMap继承(ResultMap Inheritance):可以通过定义一个基础的resultMap,并在子resultMap中使用继承关系来重用已定义的映射规则。这样可以减少重复的配置。 5. 枚举类型映射(Enum Mapping):如果结果集中包含枚举类型的字段,可以使用类型处理器或者自定义的类型处理器来将其映射为对应的Java枚举类型。 6. 自定义映射器(Custom Mappers):如果默认的映射方式无法满足需求,可以通过自定义映射器来实现复杂的结果集映射。自定义映射器可以通过实现ResultMapResolver接口来定义自己的映射规则。 这些只是一些常见的技术和方法,MyBatis在结果集映射方面提供了很多灵活的功能和选项,可以根据具体的需求选择适合的方式来处理复杂的结果集映射

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值