标签:
package com.Map; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /* * 引入Map * 我们知道集合是为了存储对象的。Collection集合的特点是存储一些对象,里面的每一个值都是一个对象 * 当遇到这样的情况: * 比如:学校中的学生,如何查询呢?根据学号查询学生 * 如果使用的是Collection保存的数据,就需要遍历collection所有学生,然后查找对应学号的学生的内容 * 如果是使用的Map集合的话,可以特别将学生id提出来,因为它是唯一的,作为键,然后遍历所有键,找到 * 对应键,然后表示出键所对应的学生信息 * 我感觉,使用Map存储数据可以简化查询时间。 * * Map<K,V> 映射项(键值对) * key是不可以重复的,map的数据结构只与key有关,value是该key中存储的值 * * Map<K,V>的方法 * * 增、 改: * Object put(key,value)//返回的是原来该key中的value * putAll(Map<? extends K,? extends V> m) 将m中的所有映射加入到此map,如果有key相同的则替换操作 * 删: * clear() * remove(Object key) //删除指定key的键值对 * 判断: * containsKey(Object key) * containsValue(Object key) * equals(Object o) * hashCode() * isEmpty() * 获取: * Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的Set视图 * get(Object key) 获取Map中对应key的属性值 * Set<k> keySet() 返回此映射中的key的Set集合 * Collection<V> values() 返回此映射中包含的值的Collection视图 * size() 返回此映射中的键-值映射关系数量 */ public class Study01 { public static void main(String[] args) { Map<Integer,String> map=new HashMap<Integer,String>(); Map<Integer,String> map1=new HashMap<Integer,String>(); //put(K,V) System.out.println("put:"+map.put(1, "guodaxia")); map.put(1, "guoxiaoxia"); map1.put(1, "aao"); map1.put(2,"QAQ");//QAQ 哭,卖萌 //putAll map.putAll(map1); System.out.println(map);//重写了toString //remove(Object key) // System.out.println("remove:"+map.remove(1)); // System.out.println(map); //clear() // map.clear(); // System.out.println(map); System.out.println(map.containsKey(1)); System.out.println(map.containsValue("QAQ")); //get(key) System.out.println(map.get(1));; //keySet() Set<Integer> keys=map.keySet(); for(int i: keys){ System.out.println(i+"---"+map.get(i)); } //values() Collection<String> l=map.values(); for(Iterator<String> it=l.iterator();it.hasNext();){ System.out.println(it.next()); } //Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的Set视图 //Map.Entry<K,V>是一个接口,它的实现类存储了一对映射值key--value,你将它理解成为一个存储键值对的对象 //它的几个方法: // getKey() // getValue() // toString() // setValue() // hashCode() // equals() // 它和Collection中的迭代器类似,可以说成是Map集合的特有迭代器,所以也可以通过这个修改集合内容 Set<Entry<Integer,String>> s= map.entrySet(); for(Entry<Integer,String> ss:s){ System.out.println(ss.getKey()+"\t"+ss.getValue()); } for(Entry<Integer,String> ss:s){ if(ss.getKey()==2){ ss.setValue("haha"); } } System.out.println(map); } } package com.Map; /* * * hashMap 哈希表结构 * * linkedHashMap 底层是哈希表和链表,有序唯一 * * TreeMap * 键是红黑树结构 有特定顺序,唯一 * 排序和唯一与排序方式有关 *自然排序是实体类实现Comparable接口 *排序器实现。 * 创建排序器,排序器是一个类,实现Comparator接口 * 在创建TreeMap时候构造方法导进去排序器 */ public class Study02 { }
标签:
原文地址:http://www.cnblogs.com/aigeileshei/p/5565981.html