JAVA 中集合和组合是一个意思么?
不是一个意思
集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。
想想你用到的数组 如果要在里面加入新元素 就要新建一个数组 又要开辟空间
比如存储你们班的同学 如果你也不知道你们班有多少人 你给数组开辟多少空间呢?
如果新来了同学呢?
集合可以完美解决这个问题 你往集合放元素是不会又开辟新空间的
聚合(Aggregation) 关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分
组合(Composition) 关系是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。代表整体的对象需要负责保持部分对象和存活,在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生组合关系,由后者排他地负责生命周期。部分和整体的生命周期一样。
以上关系的耦合度依次增强(关于耦合度的概念将在以后具体讨论,这里可以暂时理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强)。由定义我们已经知道,依赖关系实际上是一种比较弱的关联,聚合是一种比较强的关联,而组合则是一种更强的关联,所以笼统的来区分的话,实际上这四种关系、都是关联关系。 聚合关系是是一种比较强的关联关系,java中一般使用成员变量形式实现。对象之间存在着整体与部分的关系。例如上例中
class Driver { //使用成员变量形式实现聚合关系 Car mycar; public void drive(){ mycar.run(); } }假如给上面代码赋予如下语义:车是一辆私家车,是司机财产的一部分。则相同的代码即表示聚合关系了。聚合关系一般使用setter方法给成员变量赋值。 假如赋予如下语义:车是司机的必须有的财产,要想成为一个司机必须要先有辆车,车要是没了,司机也不想活了。而且司机要是不干司机了,这个车就砸了,别人谁也别想用。那就表示组合关系了。一般来说,为了表示组合关系,常常会使用构造方法来达到初始化的目的,例如上例中,加上一个以Car为参数的构造方法 public Driver(Car car){ mycar = car; }所以,关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。
collections 是集合,是指容器,常见的子类接口有,List,Map。简单来说,就是用来装其它东西的,被装东西可以是基础类型的数据...
java中的集合有专业的名词Connection,而组合是java类或者实体关系中的一种,两者是不同的概念!
顶楼上..............................
辛严二维: composition 是组合,指的是类与类之间的关系,几种常见的关系有,继承,组合,关联,聚合,依赖等...collections 是集合,是指容器,常见的子类接口有,List,Map.简单来说,就是用来装其它东西的,被装东西可以是基础类型的数据...
范县15596022237: java里的数组和集合的区别是什么? - ?
辛严二维: 数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素.但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的.还有一点,JAVA里面的数组是会做边界...
范县15596022237: java 中数组和集合的区别 - ?
辛严二维: 数组Array和集合 1.区别:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) JAVA集合可以存储和操作数目不固定的一组数据. 若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用.2. 联系:使用相应的toArray()和Arrays.asList()方法可以相互转换.
范县15596022237: java语言中集合与数组的区别? - ?
辛严二维: 对JAVA的集合的理解是相对于数组,区别:1)数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)2)JAVA集合可以存储和操作数目不固定的一组数据. 3)JAVA集合只能存放引用类型的的数据,不能存放基本数据类型;数组可以.(注意基本类型int,double等等,但是Integer,Double等是类类型了) 附加:所有的JAVA集合都位于 java.util包中! JAVA集合主要分为三种类型:Set(集) List(列表) Map(映射)
范县15596022237: 在Java中数组和集合的主要区别 - ?
辛严二维: 数组只能存储一种数据类型,而集合能存储任意数据能行,不要把集合想得太复杂了,你就把集合看成是一种能装多种数据类型的数组就是了,集合的用法也跟数组差不多
范县15596022237: JAVA中的聚集和组合的区别与联系 - ?
辛严二维: 聚合(Aggregation) 关系是关联关系的一种,是强的关联关系.聚合是整体和个体之间的关系.例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系.与关联关系一样,聚合关系也是通过实例变量实现的.但是...
范县15596022237: java 聚合和组合的区别??
辛严二维: 组合和聚合是有很大区别的,这个区别不是在形式上,而是在本质上: 比如A类中包含B类的一个引用b,当A类的一个对象消亡时,b这个引用所指向的对象也同时消亡(没有任何一个引用指向它,成了垃圾对象),这种情况叫做组合,反之b所...
范县15596022237: JAVA中集合的由来,以及集合和数组的区别 - ?
辛严二维: java集合是从1.2开始出现,为了方便存储对象.数组也可以存储对象,但是长度是固定的,集合长度是可变的.数组中可以存储基本数据类型,如byte short int long float double char;集合只能存储对象,能存储不同类型对象.
范县15596022237: JAVA中的聚集和组合的区别和联系 - ?
辛严二维: 组合实际上是聚集关系的一种特殊形式.聚集模拟了具有(has-a)关系,表示两个对象之间的归属关系.归属关系中的所有者对象称为聚集对象(aggregation object),而它的类称为聚集类(aggregating class).归属关系中的从属对象称为被聚集类(aggregated object),而它的类被称为被聚集类(aggregated class). 一个对象可以被几个其他聚集对象所拥有.如果一个对象只归属于一个聚集对象,那么它和聚集对象之间的关系就称为组合(composition).例如:“一个学生有一个名字”就是组合关系,“一个学生有一个地址”就是聚集关系,因为一个地址可以被几个学生所共享.
范县15596022237: 怎么才能了解JAVA集合类?集合类是什么? - ?
辛严二维: 数组是集合的一种,是集合的一个子集,你理解了数组就理解了集合. 理解集合类 集合类存放于java.util包中. 集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference). 集...