您的位置:首页 > 职场人生

黑马程序员——集合总结2

2012-02-11 20:45 260 查看
--------------
android培训、java培训、期待与您交流! -------------
Set

接口

无序,元素唯一

HashSet

数据结构:哈希表

不同步

如何保证元素的唯一性:

1, 获取哈希值:添加的自定义对象需要覆盖hashCode()方法,写自己的哈希值获取方法。

2, 判断对象内容:覆盖equals()方法,提供自身判断对象是否相等的方法。

容器在添加对象时,会自动调用hashCode和equals方法。

TreeSet

数据结构:二叉树

不同步

对元素进行排序。

如何排序的?

排序方法一:

让元素具备比较性。

添加的自定义对象需要实现Comparable 接口,并覆盖compareTo()方法。

compareTo方法返回值有三个:正、 负 、0 ;(大于、小于、等于指定对象)

如果相等,则不能添加到容器。(保证元素的唯一性)

排序方法二:

比较器:让TreeSet集合在初始化时就具备比较性。

创建一个类实现Comparator接口,覆盖compare方法。

将这个类对象作为参数传递给TreeSet构造函数。

LinkedHashSet

在哈希表的基础上加入了链表结构,

实现元素唯一性的同时,保证了有序。

Map集合(重点)

独立的体系

特点:

1,一次存储一对对象

2,这对对象,左边叫键,右边叫值,map集合中存储的都是键值对。

3,键与值之间有对应关系(映射)。

4,在多键值对中,键必须保证唯一性。

Collection 和 Map的区别:

Collection:一次存储一个对象,

Map :一次存储一对具有映射关系的键值对对象。

Map较为常用,原因:

可以将存储的对象进行名称的对应。查找对象时比较方便。

什么时候使用map集合呢?

分析问题时,如果出现了映射关系时,优先想到map集合

如果关系中一部分是有规律的编号,可以考虑数组。

了解Map集合的基本功能

1,添加

value put(key,value);新值覆盖旧值,返回key对应的原来的值,原来没有返回null

void putAll(Map)

2,删除

clear()

value remove(key):返回被移除键对应的值

3,判断

containsKey(key);

containsValue(value)

isEmpty();

4,获取。

value get(key);通过指定的键获取具体的对应的值。没有该键返回null。

//03---null。

size():

Collection<v> values():获取map集合中所有的值的集合.

如何获取map中所有的键值对呢?

1,Set<K> keySet()方法:获取map集合中的所有的键。并将这些键存储到一个set集合中。

有了set集合,就有了迭代器。在取出每一个键时,

通过map集合的get方法就可以获取到key对应的值。

Collection是单列集合。Map是双列集合

为了便于理解.

Collection里面存储的是单身汉.Map集合存储时夫妻.

Map集合的取出元素的原理:将map集合转成Set集合.在迭代.

2,Set<Map.Entry<key,value>>entrySet(): 获取map集合中所有的键值关系,并将关系存储到Set集合中。

这个关系对象的类型就是Map.Entry.

对Set集合进行迭代,迭代出的关系对象,可以通过自己的getKey,getValue方法获取键和值。

Map中常用的对象

三个:

Hashtable:(被HashMap替代)

内部是哈希表结构,

不允许存储null键,null值。

同步

HashMap:

内部是哈希表结构,

允许存储null键、null值

不同步

替代了Hashtable

TreeMap

内部是二叉树结构

可以对Map集合中的键值排序

-------------
android培训、java培训、期待与您交流! -------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: