简单的说,这些集合类除了bag,都有其对应的JDK中接口的语义。它们都可以表示一对多或多对多。
Set对应于java.util.Set接口,表示一个没有重复元素的集合。
怎样区别重复元素?这就涉及到对象的同一性。我们知道在数据库中,我们用主键来区分每一条记录,在Java的对象世界中,我们是用Object.equals()方法来区分是否是等价的对象。
set保证,在这个集合中,没有重复的对象。即,没有任何对象之间用equals比较返回true。如果我们正确地覆盖了entity类中的equals方法,我们就能保证在set映射中,set没有重复对象。
bag没有对应语义的JDK接口,它对应的是java.util.Collection接口,它表示一个可以有重复元素的集合。
list对应JDK的java.util.List接口,可以有重复元素。
array对应对象数组,Hibernate也不建议使用。
除了上面的集合类,还有一个map映射,对应java.util.Map,当然语义上说就是值名对。
这些集合类都可用,主要看你以什么角度,怎样的使用方式来使用。区别就是上面所讲的。
Set对应于java.util.Set接口,表示一个没有重复元素的集合。
怎样区别重复元素?这就涉及到对象的同一性。我们知道在数据库中,我们用主键来区分每一条记录,在Java的对象世界中,我们是用Object.equals()方法来区分是否是等价的对象。
set保证,在这个集合中,没有重复的对象。即,没有任何对象之间用equals比较返回true。如果我们正确地覆盖了entity类中的equals方法,我们就能保证在set映射中,set没有重复对象。
bag没有对应语义的JDK接口,它对应的是java.util.Collection接口,它表示一个可以有重复元素的集合。
list对应JDK的java.util.List接口,可以有重复元素。
array对应对象数组,Hibernate也不建议使用。
除了上面的集合类,还有一个map映射,对应java.util.Map,当然语义上说就是值名对。
这些集合类都可用,主要看你以什么角度,怎样的使用方式来使用。区别就是上面所讲的。
解决方案 »
- 中文的正则表达式
- 高手指点在aop处理类中为什么MessageContext对象为空
- 简单问题Log4j如何配置???log4j示例中好像乜嘢
- 有没有java桌面软件开发的书???
- 自定义标签问题
- spring2.5和hibernate3通过annotation方式配置时提示出错,日志如下,什么原因阿。帮忙看看阿。
- struts2中,有一个链接点击之后会出现一张'勾'的图片,但是跳转到下一个页面之后,图片又不见了,怎么办
- 请写一个java程序实现线程连接池功能
- jboss学习ejb,在eclipse里用lombozRun出现问题,help!!!!
- 如何测试一个EJB组件的性能??
- web程序中怎么实现每天夜里3:30向数据库中自动插入一条记录(高分送,在线等)
- 关于hibernate取数据的问题-----从第几行记录取到第几行记录,做分页用的
Set也是TreeSet同上