您的位置:首页 > 编程语言 > Java开发

javaAPI(Map双列集合)

2015-07-19 11:55 489 查看
Map集合成员方法

增加功能

V put(K key, V value)


返回的是被覆盖的值当key在集合中不存在时,添加元素;当key在集合存在时候,替换元素

删除功能

void clear

清除所有键值对数据

V remove(Object key)

根据指定的键删除键值对

判断功能

boolean containsKey(Object key)

判断指定的键是否在集合中存在

boolean containsValue(Object value)

判断指定的值是否在集合中存在

boolean isEmpty

判断集合是否为空

获取功能

Set<Map.Entry<K,V>> entrySet()


键值对对象的集合

Object get(Object key)

根据键获取值

Set keySet():

所有键的集合

Collection values()

所有值的集合

长度

int size()

获取长度

Map集合的两种遍历方式

创建Map集合

// 创建集合对象
Map<String, String> map = new HashMap<String, String>();

// 创建并添加元素
map.put("杨过", "小龙女");
map.put("郭靖", "黄蓉");
map.put("梁山伯", "祝英台");
map.put("牛郎", "织女");


第一种遍历方式(通过keySet())

Set<String> keySet = map.keySet();
for(String key : keySet){
System.out.println("key:"+key+" value"+map.get(key));
}


第二种遍历方式(通过entrySet())

Set<Entry<String,String>> entrySet = map.entrySet();
for(Map.Entry<String, String> entry : entrySet){
System.out.println("key"+entry.getKey()+" value"+entry.getValue());
}


HashMap存储自定义对象实现去重 (将自定义对象存储到Key的位置)

HashMap

自定义对象重写hashCode()和equals()方法,并且使用HashMap

TreeMap

方案1:自定义对象实现Comparable 接口,并且重写compareTo方法

方案2:创建TreeMap集合对象时通过TreeMap的构造方法传入一个Comparator对象

TreeMap存储自定义对象实现排序 (将自定义对象存储到Key的位置

方案1

自定义对象实现Comparable 接口,并且重写compareTo方法

方案2

创建TreeMap集合对象时通过TreeMap的构造方法传入一个Comparator对象

Hashtable和HashMap区别

HashTable:

线程安全,效率低,不允许null键和值

HashMap:

线程不安全,效率高,允许null键和值

如果想线程安全,并且可以存储null怎么办,使用ConcurrentHashMap

|–Map(双列 底层结构是针对键有效,跟值无关)

|–HashMap

底层数据结构是哈希表。

线程不安全,效率高。允许null键和值

怎么保证唯一性的呢?

它依赖两个方法:hashCode()和equals()

顺序:

首先判断hashCode()值是否相同。

同:继续走equals(),看返回值

如果true:就不添加到集合。

如果false:就添加到集合。

不同:就添加到集合。

|–Hashtable

底层数据结构是哈希表。

线程安全,效率低。不允许null键和值

怎么保证唯一性的呢?

它依赖两个方法:hashCode()和equals()

顺序:

首先判断hashCode()值是否相同。

同:继续走equals(),看返回值

如果true:就不添加到集合。

如果false:就添加到集合。

不同:就添加到集合。

|–TreeMap

底层数据结构是二叉树。

线程不安全,效率高。

怎么保证唯一性的呢?是根据返回是否是0。

怎么保证排序的呢?两种方式

自然排序(元素具备比较性)

实现Comparable接口

方法:compareTo(obj)

比较器排序(集合具备比较性)

实现Comparator接口

方法:compare(obj1,obj2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: