首页 / JAVA / Java学习day30-Map集合
Java学习day30-Map集合
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java学习day30-Map集合,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2841字,纯文字阅读大概需要5分钟。
内容图文
一、Map
1.Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组用于保存Map里的Key,另外一组用于保存Map里的Value。
2.Map中的key和value都可以是任何引用类型的数据。
3.Map中的Key不允许重复,即同一个Map对象的任何两个Key通过equals方法比较都返回false。
4.Key和Vaiue之间存在单向一对一的关系,即通过指定的Key总能找到唯一,确定的Value。
二、Map接口和HashMap类
package day16; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class Test6 { public static void main(String[] args){ Map<String,Integer> map = new HashMap<String,Integer>(); map.put("b", 1);//添加数据 map.put("c", 2); map.put("e", 2); System.out.println(map); System.out.println(map.get("b"));//根据key取值 map.remove("c");//根据key来移除键值对 System.out.println(map); System.out.println(map.size());//map集合的长度 System.out.println(map.containsKey("b"));//判断当前的map集合是否包含指定的key; System.out.println(map.containsValue(1));//判断当前的map集合是否包含指定的Value // map.clear();//清空集合 Set<String>keys = map.keySet();//获取map集合的key的集合 map.values();//获取map集合的values的集合 //遍历map集合,通过map.keySet(); for(String key : keys){ System.out.println("key:" + key + ",value:" + map.get(key)); } //通过map.entrySet();遍历map集合 Set<Entry<String,Integer>> entrys = map.entrySet(); for(Entry<String,Integer>en : entrys){ System.out.println("key:" + en.getKey() + ",value:" + en.getValue()); } } }
打印结果为:
三、HashMap & Hashtable
1.HashMap和Hashtable是Map接口的两个典型实现类,区别在于:
①Hashtable是一个古老的Map实现类,不建议使用。
②Hashtable是一个线程安全的Map实现,但HashMap是线程不安全的。
③Hashtable不允许使用null作为key和value,而HashMap可以。
2.与HashSet集合不能保证元素的排列顺序一样,HashMap和Hashtable也不能保证其中key-value对的顺序。
3.HashMap、Hashtable判断两个key相等的标准是:两个Key通过equals方法返回true,hashCode值也相等。
四、TreeMap
1.TreeMap存储Key-Value对时,需要根据Key对key-value对进行排序。TreeMap可以保证所有的Key-Value对处于有序状态。
2.TreeMap的Key的排序:
①自然排序:TreeMap的所有的Key必须实现Comparable接口,而且所有的Key应该是同一个类的对象,否则将会抛出ClassCastException.
②定制排序(了解):创建TreeMap时,传入一个Comparable对象,该对象负责对TreeMap中的所有key进行排序。此时不需要Map的Key实现Comparable接口。
3.一般使用map集合,不会使用过于复杂的对象做key。
package day16; import java.util.Map; import java.util.TreeMap; public class Test6 { public static void main(String[] args){ //TreeMap的自然排序是字典排序 Map<Integer,String> map = new TreeMap<Integer,String>(); map.put(4, "a"); map.put(2, "a"); map.put(3, "a"); map.put(1, "a"); System.out.println(map); Map<String,String> map1 = new TreeMap<String,String>(); map1.put("b", "b"); map1.put("c", "c"); map1.put("d", "d"); map1.put("a", "a"); map1.put("ab", "ab"); map1.put("1", "ab"); map1.put("10", "ab"); System.out.println(map1); } }
打印结果是:
内容总结
以上是互联网集市为您收集整理的Java学习day30-Map集合全部内容,希望文章能够帮你解决Java学习day30-Map集合所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。