首页 / JAVA / 07java进阶——集合框架3
07java进阶——集合框架3
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了07java进阶——集合框架3,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6145字,纯文字阅读大概需要9分钟。
内容图文
![07java进阶——集合框架3](/upload/InfoBanner/zyjiaocheng/814/e72c30047d984829a7516d0ed42d1c7b.jpg)
1.映射表(Map)
1.1基本概念
1.2Map中常用的方法
package cn.jxufe.java.chapter7; import java.util.HashMap; import java.util.Map; public class Test09Map { public static void main(String[] args) { // TODO Auto-generated method stub function(); System.out.println(); function_1(); System.out.println(); function_2(); } /* * 移除集合中的键值对,返回被移除之前的值 * V remove(K) */ public static void function_2() { Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); System.out.println(map); String value = map.remove(3); System.out.println(value); System.out.println(map); System.out.println(map.size()); System.out.println(map.values()); System.out.println(map.keySet()); System.out.println(map.containsKey(2)); System.out.println(map.containsValue("b")); System.out.println(map.entrySet()); } /* * 通过键对象,获取值对象 * V get(K) * 如果集合中没有这个键,返回null */ public static void function_1() { // 创建集合对象,作为键的对象整数,值的对象存储字符串 Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "a"); map.put(2, "b"); map.put(3, "c"); System.out.println(map); String value = map.get(4); System.out.println(value); String value2 = map.get(3); System.out.println(value2); } /* * 将键值对存储到集合中 * V put(K,V) K 作为键的对象, V作为值的对象 * 存储的是重复的键,将原有的值,覆盖 * 返回值一般情况下返回null, * 存储重复键的时候,返回被覆盖之前的值 */ public static void function() { // 创建集合对象,HashMap,存储对象,键是字符串,值是整数 Map<String, Integer> map = new HashMap<String, Integer>(); map.put("a", 1); map.put("b", 2); map.put("c", 3); System.out.println(map); } }
1.3map的遍历
方法1:
package cn.jxufe.java.chapter7; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /* * Map集合的遍历 * 利用键获取值 * Map接口中定义方法keySet * 所有的键,存储到Set集合 */ public class Test10Map { public static void main(String[] args) { // TODO Auto-generated method stub Map<String, Integer> map = new HashMap<String, Integer>(); map.put("a", 11); map.put("b", 12); map.put("c", 13); map.put("d", 14); map.put("ab", 14); // 1. 调用map集合的方法keySet,所有的键存储到Set集合中 Set<String> set = map.keySet(); System.out.println(set); // 2. 遍历Set集合,获取出Set集合中的所有元素 (Map中的键) Iterator<String> it = set.iterator(); while (it.hasNext()) { // it.next返回是Set集合元素,也就是Map中的键 // 3. 调用map集合方法get,通过键获取到值 String key = it.next(); Integer value = map.get(key); System.out.println(key + "...." + value); } System.out.println("======================="); for (String key : map.keySet()) { Integer value = map.get(key); System.out.println(key + "...." + value); } } }
方法2:
在Map类设计时,提供了一个嵌套接口:Entry。Entry将键值对的对应关系封装成了对象。即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值。
- entrySet()方法:用于返回Map集合中所有的键值对(Entry)对象,以Set集合形式返回。
package cn.jxufe.java.chapter7; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /* * Map集合获取方式 * entrySet方法,键值对映射关系(结婚证)获取 * 实现步骤: * 1. 调用map集合方法entrySet()将集合中的映射关系对象,存储到Set集合 * Set<Entry <K,V> > * 2. 迭代Set集合 * 3. 获取出的Set集合的元素,是映射关系对象 * 4. 通过映射关系对象方法 getKet, getValue获取键值对 * * 创建内部类对象 外部类.内部类 = new */ public class Test11Map { public static void main(String[] args) { // TODO Auto-generated method stub Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "abc"); map.put(2, "bcd"); map.put(3, "cde"); // 1. 调用map集合方法entrySet()将集合中的映射关系对象,存储到Set集合 Set<Map.Entry<Integer, String>> set = map.entrySet(); // 2. 迭代Set集合 Iterator<Map.Entry<Integer, String>> it = set.iterator(); while (it.hasNext()) { // 3. 获取出的Set集合的元素,是映射关系对象 // it.next 获取的是什么对象,也是Map.Entry对象 Map.Entry<Integer, String> entry = it.next(); // 4. 通过映射关系对象方法 getKet, getValue获取键值对 Integer key = entry.getKey(); String value = entry.getValue(); System.out.println(key + "...." + value); } System.out.println("========================="); for (Map.Entry<Integer, String> entry : map.entrySet()) { System.out.println(entry.getKey() + "..." + entry.getValue()); } } }
1.4HashMap存储自定义类型键值
package cn.jxufe.java.chapter7; import java.util.HashMap; import java.util.Map; /* * 使用HashMap集合,存储自定义的对象 * 自定义对象,作为键,出现,作为值出现 */ public class Test12HashMap { public static void main(String[] args) { // TODO Auto-generated method stub /* * HashMap 存储自定义对象Person,作为键出现 * 键的对象,是Person类型,值是字符串 * 保证键的唯一性,存储到键的对象,重写hashCode equals */ HashMap<Person, String> map = new HashMap<Person, String>(); map.put(new Person("a", 20), "里约热内卢"); map.put(new Person("b", 18), "索马里"); map.put(new Person("b", 18), "索马里"); map.put(new Person("c", 19), "百慕大"); for (Person key : map.keySet()) { String value = map.get(key); System.out.println(key + "..." + value); } System.out.println("==================="); for (Map.Entry<Person, String> entry : map.entrySet()) { System.out.println(entry.getKey() + "..." + entry.getValue()); } } }
1.5LinkedHashMap
1.6TreeMap
package cn.jxufe.java.chapter7; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.TreeMap; public class Test13TreeMap { public static void main(String[] args) { // TODO Auto-generated method stub Map<String, Integer> hashMap = new HashMap<>(); hashMap.put("smith", 30); hashMap.put("pull", 31); hashMap.put("kobe", 29); hashMap.put("weide", 29); System.out.println("Display entries in hashMap"); System.out.println(hashMap + "\n"); Map<String,Integer> linkedHashMap = new LinkedHashMap<>(); linkedHashMap.put("smith", 30); linkedHashMap.put("pull", 31); linkedHashMap.put("kobe", 29); linkedHashMap.put("weide", 29); System.out.println("Display entries in linkedHashMap"); System.out.println(linkedHashMap + "\n"); Map<String,Integer> treeMap = new TreeMap<>(); treeMap.put("smith", 30); treeMap.put("pull", 31); treeMap.put("kobe", 29); treeMap.put("weide", 29); System.out.println("Display entries in treeMap"); System.out.println(treeMap); } }
2.示例学习:单词的出现次数
内容总结
以上是互联网集市为您收集整理的07java进阶——集合框架3全部内容,希望文章能够帮你解决07java进阶——集合框架3所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。