Java笔记4 JavaAPI<3>Map、Map-keySet、Map.entry

来源:互联网 发布:顶新影音 mac 编辑:程序博客网 时间:2024/06/05 15:02

------- android培训、java培训、期待与您交流! ----------

16天-01-集合(Map概述)

l  Map集合:该集合存储键值对,一对一往里存,而且要保证键的唯一性。

1)       添加

put(K key,Vvalue)

putAll(Map<?extends K,? extends V> m)

2)       删除

clear()

remove(Objectobj)

3)       判断

containsValue(Objectobj)

containsKey(Objectkey)

isEmpty()

4)       获取

get(Object key)

size()

values()

 

 

16天-02-集合(Map子类对象特点)

l  Map

|--HashTable:底层是哈希表数据表结构,不可以存入null键null值,该集合是线程同步的。jdk1.0效率低。

|--HashMap:底层是哈希表数据结构,允许使用null键null值,该集合不同步。jdk1.2效率高。

|--TreeMap:底层是二叉树数据结构。线程不同步,可以用于给map集合中的键进行排序。

l  其实和Set很像。

其实,Set底层就是使用Map集合。

l  注意,在使用map时,当使用put方法存键值对的时候,新key和key相同,新的value会覆盖掉旧value。

举例:

Map<String,String>map = new HashMap<String,String>();

map.put("a01", "123");

    map.put("a01","234");

    map.put("a02","234");

    map.put(null,"234");

    map.put("a03",null);

map.put(null,null);

 

Collection<String>coll = new map.values();

System.out.println(coll);

System.out.println(map);

打印结果:

[null, 234, 234, null]

{null=null, a01=234, a02=234, a03=null}

 

 

16天-04-集合(Map-keySet)

l  Map集合的两种取出方式:

1)       keyset:将map中的所有键存入到Set集合。因为set具备迭代器。所有可以迭代方式取出所有键,再根据get方法,获取每个键对应的值。

Map的取出原理,将Map集合转换为Set集合,再通过迭代器取出。

示例:

class Demo{

       publicstatic void main(String[] args){

       Map<String,String> map = newHashMap<String,String>();

       map.put(“01”,”zhangsan01”);

       map.put(“02”,”zhangsan02”);

       Set<String> keyset = map.keySet();

       Iterator<String> it = keyset.iterator();

       while(ir.hashNext()){

       String key = it.next();

       String value =map.get(key);

       System.out.println(“key:”+key+”,value”+value);

}

}

}

 

     2) Set<Map.entry<k,v>>entrySet:将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是:map.Entry。

示例:

Set<Map.Entry<String,String>>entrySet = map.entrySet();

Iterator<Map.Entry<String,String>>it = entrySet.iterator();

while(it.hasNext()){

       Map.Entry<String,String>me = it.next();

       Stringkey = me.getKey();

       Stringvalue = me.getValue();

       System.out.println(key+”:”+value);

}

 

l  Map.entry其实Entry也是一个接口,它是Map接口中的一个内部接口。

interface Map{

       publicstatic interface Entry{

public abstractObject getKey();

public abstractObject getValue();

}

}

class HashMap implements Map{

       classHahs implements Map.Entry{

       public Object getKey(){

}

public Object getValue(){

}

}

}

 


------- android培训、java培训、期待与您交流! ----------

原创粉丝点击