Java集合类的混淆点总结(二)
2016-05-18 21:15
543 查看
Set(集)
1:第一不允许出现重复元素。
2:有且只有一个null的元素
这里重点说下TreeSet
TreeSet是一个有序的集合。将元素进行插入时候,
元素自动地排序(内部是红黑树实现的)。每次将元素插入到TreeSet中时候,都被放置在正确的排序位置上。在TreeSet中查找元素要比LinkedList快很多。TreeSet元素查找到正确的位置需要Log2n。而链表的查找元素是n。
Map(映射表)
Map维护三个视图
1:键集 Set<K> keySet();
2: 值集合 Collection<K> values();
3:键/值集合 Set<Map.Entry<K,V>> entrySet();
当我们遍历Map时候常用方法:
4:HashMap允许添加空值(key 有且只有一个null的元素 value 可以有多个空元素)
注意HashMap的key会自动覆盖。保证一个key映射一个value(一个value可以被多个key映射)。
maps.put(null,"11111");
maps.put(null,null);
null --> null null最终映射null
1:第一不允许出现重复元素。
2:有且只有一个null的元素
这里重点说下TreeSet
TreeSet是一个有序的集合。将元素进行插入时候,
元素自动地排序(内部是红黑树实现的)。每次将元素插入到TreeSet中时候,都被放置在正确的排序位置上。在TreeSet中查找元素要比LinkedList快很多。TreeSet元素查找到正确的位置需要Log2n。而链表的查找元素是n。
Map(映射表)
Map维护三个视图
1:键集 Set<K> keySet();
2: 值集合 Collection<K> values();
3:键/值集合 Set<Map.Entry<K,V>> entrySet();
当我们遍历Map时候常用方法:
Map<String,String> maps=new HashMap<String, String>(); maps.put("1", "yang"); maps.put("2", "liu"); maps.put("3", "li"); maps.put("4", "lv"); ①:for(Map.Entry<String, String> entry:maps.entrySet()){ System.out.println(entry.getKey()+" "+entry.getValue()); //内部实现排序 } ②:Iterator it=maps.entrySet().iterator(); while(it.hasNext()){ Map.Entry<String, String> entry=(Entry<String, String>) it.next(); System.out.println(entry.getKey()+"==="+entry.getValue()); } ③:for (String key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.get(key)); }
4:HashMap允许添加空值(key 有且只有一个null的元素 value 可以有多个空元素)
注意HashMap的key会自动覆盖。保证一个key映射一个value(一个value可以被多个key映射)。
maps.put(null,"11111");
maps.put(null,null);
null --> null null最终映射null
相关文章推荐
- LeetCode上与树相关的问题
- java中抽象类和接口的异同点
- Java之InetAddress类
- Eclipse构建Maven项目
- Eclipse构建Maven项目
- 初学JAVA环境变量配置以及编译程序和运行
- 马士兵Java课堂笔记-7-键盘事件测试代码
- 深入java学习之java面向对象程序设计
- Java——CLASSPATH环境变量深度解析
- 集合框架-List与Set
- Java swing 入门
- [疯狂Java]基础类库:Runtime(运行时信息)
- Java 中的内部类
- Java:用四种方式实现两个数交换
- java中path和CLASSPATH的配置和意义解析
- java中的接口
- Clojure里调用Java类
- java类和方法
- Java 垃圾收集器与内存分配策略
- Java图形界面开发—简易记事本