java集合之map中keySet方法
2016-08-17 11:03
447 查看
今天用到了map中keySet方法,出现了一个错误,记录下来。
出现错误原因:没有注意到map中keySet方法返回的是一个Set集合镜像,所以在修改该Set集合镜像时,map中所对应的键值对也会相应的被修改。
HashMap中[b][b]keySet方法源码:[/b][/b]
测试类:
可见[b][b]map中keySet方法[/b]返回的是map中key的镜像,对[b][b]keySet方法[/b]返回的[/b]Set的修改就是对map中key的修改。
[/b]
出现错误原因:没有注意到map中keySet方法返回的是一个Set集合镜像,所以在修改该Set集合镜像时,map中所对应的键值对也会相应的被修改。
HashMap中[b][b]keySet方法源码:[/b][/b]
测试类:
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * map的keySet()方法 * * @author feige */ public class RemoveSet { public static void main(String[] args) { Map<Integer, String> testMap = new HashMap<Integer, String>(); testMap.put(1, "一"); testMap.put(2, "二"); testMap.put(3, "三"); testMap.put(4, "四"); testMap.put(5, "五"); Set<Integer> testKey = testMap.keySet(); Iterator<Integer> it = testKey.iterator(); System.out.println("移除前map的大小为:" + testMap.size()); System.out.println("移除前的遍历"); while (it.hasNext()) { Integer testInt = it.next(); System.out.println(testInt); // 移除key为3的键 if (testInt == 3) { it.remove(); } } System.out.println("移除了key为3的键"); System.out.println("移除后map的大小为:" + testMap.size()); System.out.println("移除后的遍历"); it = testKey.iterator(); while (it.hasNext()) { Integer testInt = it.next(); System.out.println(testInt); } } }测试结果为:
可见[b][b]map中keySet方法[/b]返回的是map中key的镜像,对[b][b]keySet方法[/b]返回的[/b]Set的修改就是对map中key的修改。
[/b]
相关文章推荐
- 黑马程序员_Java第16天知识总结_Map集合_entrySet_keySet
- java中Map集合的常用遍历方法及HashMap的应用实例
- 黑马程序员--Map集合中两个重要的取值方法---keySet()和entrySet()
- Map集合的两种获取元素的方式:keySet()和entrySet()方法
- Java中遍历Map的两种方法:keySet和entrySet
- Map集合中value()方法与keySet()、entrySet()区别
- Java集合(set,map)的排序和HashCode方法详解
- Java中遍历Map的三种方法:keySet、entrySet 、values()
- Java中遍历Map的两种方法:keySet和entrySet
- Java集合Set、List、Map的遍历方法
- java中Map集合遍历方法
- java中List、Set、Map集合的遍历方法总结
- 黑马程序员------集合(No.1)(Map集合、Map共性方法、keySet、entrySet)
- Java中遍历Map的两种方法:keySet和entrySet .
- Java中遍历Map的两种方法:keySet和entrySet
- java中Map集合的常用遍历方法及HashMap的应用实例
- java Map的keySet方法,并遍历Map的值
- java 基础知识之遍历Map 方法集合
- JAVA基础回顾1 遍历List Set 和Map集合的所有方法
- java中map集合的两种取出方式keySet和entrySet