`
hanfengmvp
  • 浏览: 20273 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

为什么双向关联的配置老是用Set 而不用 List?

阅读更多
hibernate的双向关联给我们获得关联的对象提供了很大的方便,但是Set对象却不如List对象用的那么多。hibernate本来就支持list配置的双向关联,可是为什么,资料上老是介绍set呢?
分享到:
评论
12 楼 eyejava 2007-04-14  
hanfengmvp 写道
开发过程中List对象肯定要远远多于Set对象,如果仅仅是为了不重复,那是不是有点因小失大了?

用set 有什么损失? 难道需要很多地方去把set转成list?
11 楼 hanfengmvp 2007-04-14  
开发过程中List对象肯定要远远多于Set对象,如果仅仅是为了不重复,那是不是有点因小失大了?
10 楼 温柔一刀 2007-04-13  
用set除了方便之外

也就是set本身的特征(无重复元素)优点了
9 楼 xly_971223 2007-04-13  
主要还是防止有重复记录吧 如果存在重复记录 set可以透明的合并
如果使用list操作起来可能要麻烦些
8 楼 daquan198163 2007-04-13  
有什么明显的区别么
估计大多数人都是受自己看的第一本hibernate书影响来选择的,呵呵
7 楼 LucasLee 2007-04-13  
用Set能保证集合内的元素是唯一,不重复的。
至少看上去清楚些。
我想这是主要原因吧。
6 楼 hgq0011 2007-04-13  
set配置比list简单。
set没有顺序,list有顺序。
配置list的时候要指定list-index,也就要在数据库中对应创建一个字段表示顺序。
5 楼 ahuaxuan 2007-04-13  
programmer 写道
我在开发中也有这个疑问,set在使用中确实不好用。如果能用list就比较好用了。
list就是bag类型,但从来没有听说过set确实不好用,而且bag和set是适用在不同场景下的,bag适合关联的集合类中有排序需求,而set没有排序,而且要override equals和hashcode方法,但是更常用的应该是set,用set的优点就是用Set的优点,用list就是用List的优点,搞清楚两者的区别和适用场景就没有什么疑惑的了
4 楼 pinetree_xia 2007-04-13  
也是我想问的问题.
3 楼 乡村里的一条土狗 2007-04-13  
顶一下
2 楼 programmer 2007-04-13  
我在开发中也有这个疑问,set在使用中确实不好用。如果能用list就比较好用了。
1 楼 zingers 2007-04-13  
先入为主,一开始某些例子是用Set的

相关推荐

    STL上课课件1234

    顺序容器包括vector、list、deque、queue、stack、priority_queue,关联容器则包括set、multiset、map、multimap、unordered_map和unordered_multimap。这些容器各自有着不同的内部结构和用途,可满足不同的数据存储...

    C++中STL使用总结

    8. string对象与数值相互转换:可以使用标准库函数如atoi()、atol()、atof()等将string转换为数值,使用std::to_string()将数值转换为string。 十三、heap算法 Heap算法用于实现堆这种数据结构,它是一种特殊的...

    C++容器类的简单介绍.doc

    list则是一种双向链表,其优点在于能在任何位置快速插入和删除元素,但访问速度比前两者慢。 关联容器包括set、multiset、map和multimap。set和multiset提供了快速查找功能,不允许重复值,set是单值,而multiset...

    C++_标准模板库(STL)

    STL被设计为高效且易于使用,其核心在于模板的广泛应用,使得STL中的数据结构和算法与数据类型无关,从而提供了一种类型安全且高效的方式来处理数据。 STL主要包含以下几大类组件: 1. 顺序性容器:这些容器保持...

    stl标准数据库

    STL(Standard Template Library,标准模板库)是C++标准库中的一个重要组成部分,它提供了一系列模板化的数据结构和算法,以便于程序员使用。C++的STL主要包含六大组件:容器(Containers)、迭代器(Iterators)、...

    cPP.rar_c++ 容器使用_容器

    首先,C++中的容器分为几种主要类型:顺序容器(如vector、deque和list)、关联容器(如set、multiset、map和multimap)以及特殊容器(如stack、queue和priority_queue)。每个容器都有其特定的用途和性能特点。 1....

    超级有影响力霸气的Java面试题大全文档

    为什么要有GC?  GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域...

    STL.rar_STL_stl queues

    STL,全称为Standard Template Library(标准模板库),是C++编程语言中的一部分,它提供了一组高效且灵活的容器、算法和迭代器,极大地增强了C++的编程能力。在这个"STL.rar"压缩包中,包含了一些关于STL的学习程序...

    stl数据结构.docx

    STL容器主要基于广泛使用的数据结构实现,涵盖了多种类型的数据结构,如数组(array)、向量(vector)、列表(list)、树(tree)、栈(stack)、队列(queue)、散列表(hash table)、集合(set)、映射表(map)等。这些数据结构...

    JAVA 面试 问题和答案

    集合框架包含List、Set、Queue等接口和实现它们的类,如ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、TreeMap等。 4.2 为什么Collection不扩展Cloneable和Serializable接口?Collection接口不实现...

    STL源码剖析高清pdf

    7. **set/map**:基于红黑树实现的关联容器,set中元素是唯一的,map则将键映射到值。set和map都提供了快速查找和插入,但插入新元素时会自动排序。 8. **算法实现**:STL还包含了各种通用算法,如排序(sort)、...

    C++_STL使用例子大全

    这篇文章介绍了如何在C++中使用STL的容器部分,包括vector、deque、list、set、multiset、map、multimap、stack、queue和priority_queue等。通过具体的代码示例,我们可以学习如何创建这些容器的实例,对它们进行...

    Java面试题和答案.pdf

    `Iterator`怎么使用?有什么特点?** - 使用`iterator()`方法获取`Iterator`对象。 - 特点包括:支持`hasNext()`和`next()`方法进行遍历;支持`remove()`方法删除元素;`Iterator`遍历比传统的`for`循环更安全,...

    C++STL讲解 PPT版本

    Set和Map是关联容器,存储键值对,Set中的元素唯一,Map中的键值对也满足键的唯一性。 2. **算法**(Algorithms):STL提供了大量的通用算法,如Sort、Search、Copy、Erase等,这些算法可以应用于不同的容器上,...

    C++ STL标准程序库开发指南

    C++ STL,全称为Standard Template Library(标准模板库),是C++编程语言中不可或缺的一部分,为程序员提供了高效且灵活的数据结构和算法。STL的主要组件包括容器、迭代器、算法和函数对象,它们通过模板机制实现,...

    C++标准模版库(Standard Template Library).pdf

    这些容器中的元素保持有序状态,并且不允许重复元素(对于`set`和`map`而言)。 ##### Set - **特点**:`set`是一个包含唯一元素的集合,其中的元素根据大小关系进行排序。 - **操作**: - `at(size_t i)`:安全...

    标准模板库STL用法

    关联容器(如`set`, `multiset`, `map`, `multimap`)主要基于树形结构实现,提供了对元素的快速查找、插入和删除操作,适合处理具有唯一性或需要根据键值进行快速查找的数据。 **1. C++ SETS&MULTISETS** - **...

Global site tag (gtag.js) - Google Analytics