UML,集合框架

简介: UML,集合框架

1.什么是UML

UML是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件和软件开发过程中非常重要的一部分。UML主要使用图形符号来表示软件项目的设计,使用UML可以帮助项目团队沟通、探索潜在的设计和验证软件的架构设计。


2.ArrayList、LinkedList和Vector的区别



1)ArrayList和LinkedList的区别


相同点:

1、LinkedeList和ArrayList都实现了List接口。

2、ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。

不同点:

1、ArrayList底层实现是数组,而LinkedList是双向链表。

2、ArrayList查询快(下标)、增删改慢、LinkedList是查询慢,但是在插入删除时效率比较高。


2)ArrayList和Vector的区别


相同点:

1、ArrayList和Vector都是用数组实现的

2、默认初始化大小都是10



不同点:

1、Vector多线程是安全的,而ArrayList不是。Vector类中的方法很多有synchronized进行修饰,这样就导致了Vector在效率上无法与ArrayList相比;

2、两个都是采用的线性连续空间存储元素,但是当空间不足的时候,两个类的增加方式是不同的。(ArrayList每次存储时会检查空间大小,不够时会扩充为原来的1.5倍,Vector会扩充为原来空间的2倍)



3.HashSet、LinkedHashSet和TreeSet的特点:


1)HashSet

- 它不允许出现重复元素;

- 不保证集合中元素的顺序

- 允许包含值为null的元素,但最多只能有一个null元素。

- HashSet的实现是不同步的。

2)LinkedHashSet:

- 哈希表和链表实现Set接口,具有可预测的迭代次序;

- 由链表保证元素有序,也就是说元素的存储和取出顺序是一致的。

- 由哈希值保证元素唯一,也就是说没有重复的元素

2)TreeSet:

TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。TreeSet是基于TreeMap实现的。TreeSet中的元素支持2种排序方式:自然排序 或者 根据创建TreeSet 时提供的 Comparator 进行排序。


4.HashMap与Hashtable的区别


1)HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,在只有一个线程访问的情况下,效率要高于Hashtable。

2)HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

3)HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。

4)Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。

Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。


就HashMap与HashTable主要从三方面来说。

1)历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现;

2)同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的;

3)值:只有HashMap可以让你将空值作为一个表的条目的key或value


5.List,Set,Map三者的区别及总结


List:对付顺序的好帮手

List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象


Set:注重独一无二的性质

不允许重复的集合。不会有多个元素引用相同的对象。


Map:用Key来搜索的专家

使用键值对存储。Map会维护与Key有关联的值。两个Key可以引用相同的对象,但Key不能重复,典型的Key是String类型,但也可以是任何对象。


目录
相关文章
|
6月前
|
数据可视化 Java uml
Java的UML类图
Java的UML类图
90 1
|
6月前
|
存储 Java uml
Java-UML类图简介
Java-UML类图简介
74 0
UML基础与应用之面向对象
UML基础与应用之面向对象
75 0
|
数据可视化 uml
UML——面向对象技术
封装(Encapsulation):隐藏对象的属性和实现细节,仅对外提供公共访问方式,提高复用性和安全性
|
uml
【UML】面向对象技术
【UML】面向对象技术
55 0
|
程序员 uml
程序员必须要了解的UML类图相关知识
在UML类图中,常见的有以下几种关系: 泛化(Generalization),实现(realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
|
设计模式 Java uml
UML类图及Java实现
我想完整记录一下Java版的设计模式的内容,本篇是关于UML类图,它与设计模式息息相关。图文形式结合介绍UML类图,并且在理解困难的地方做了解释。
249 0
|
设计模式 uml
设计模式(8)--UML类图
设计模式(8)--UML类图
138 0
设计模式(8)--UML类图
|
设计模式 测试技术 uml
设计模式UML——类图简单了解
设计模式UML——类图简单了解
设计模式UML——类图简单了解