码迷,mamicode.com
首页 > 编程语言 > 详细

java018.双列集合Map

时间:2016-08-25 23:35:03      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

day18
双列集合Map
Map接口和Collection接口的区别:
 * Map是双列的,Collection是单列的
 * Map的键唯一,Collection的子体系Set是唯一的,List体系可以存储重复值
 * Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效
 * a:添加功能
  * V put(K key,V value):添加元素。
   * 如果键是第一次存储,就直接存储元素,返回null
   * 如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值(键是唯一的,值可以被覆盖)//重复时不会覆盖键,但会覆盖值!!!注意是覆盖而不是修改(虽然结果一样),需要修改用entry
 * b:删除功能
  * void clear():移除所有的键值对元素
  * V remove(Object key):根据键删除键值对元素,并把值返回
 * c:判断功能
  * boolean containsKey(Object key):判断集合是否包含指定的键  //只有containKey而没有contain方法
  * boolean containsValue(Object value):判断集合是否包含指定的值
  * boolean isEmpty():判断集合是否为空
 * d:获取功能
  * Set<Map.Entry<K,V>> entrySet():
  * V get(Object key):根据键获取值
  * Set<K> keySet():获取集合中所有键的集合
  * Collection<V> values():获取集合中所有值的集合
 * e:长度功能
  * int size():返回集合中的键值对的个数
增强for循环遍历时特别注意:增强for循环底层依赖迭代器但又无法使用迭代器的特有方法,因而不能增删集合中的元素,但是能修改!

遍历:
* A:键找值思路:
 * 获取所有键的集合
 * 遍历键的集合,获取到每一个键
 * 根据键找值
* B:键值对对象找键和值思路:
 * 获取所有键值对对象的集合
 * 遍历键值对对象的集合,获取到每一个键值对对象
 * 根据键值对对象找键和值

HashMap和HashSet中自定义对象要保证键值唯一就得重写equal方法和hashcode方法,而四类八种的包装类的String类中已经重写了这两个方法!

LinkedHashMap和LinkedSet分别是Map体系和Set体系唯一能保证怎么存就怎么取的子类

TreeMap集合键是自定义类值是String,需要在 1、自定义类中重写comparable接口的compareTo方法;或者 2、建立comparator的匿名内部类并重写compare()方法!才能实现排序

Collections类:
  public static <T> void sort(List<T> list)
  public static <T> int binarySearch(List<?> list,T key)
  public static <T> T max(Collection<?> coll)
  public static void reverse(List<?> list)
  public static void shuffle(List<?> list)  //随机置换~(洗牌)

java018.双列集合Map

标签:

原文地址:http://www.cnblogs.com/meng726477179/p/5808606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!