java018.双列集合Map

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)  //随机置换~(洗牌)

时间: 2024-10-23 19:01:07

java018.双列集合Map的相关文章

双列集合Map及实现该接口的类的常用方法

为什么要学双列集合? 因为单列集合无法处理映射关系,会有成对出现的数据 Map接口  如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复 Map接口的方法:   添加:    put(K key, V value)     putAll(Map<? extends K,? extends V> m)    删除    remove(Object key)     clear()   获取:    get(Object key)     si

集合面试题之双列集合Map

一.了解Map集合吗?Map集合都有哪些实现 HashMap .HashTable.    LinkedHashMap .TreeMap.   ConcurrentHashMap HashMap底层数据结构是哈希表,所以其特点是元素无序且唯一(自定义对象需要重写hashCode和equals方法保证他的唯一性) Hashtable它和HashMap类很相似,但是它支持同步,Hashtable在哈希表中存储键/值对,当使用一个哈希表,要指定用作键的对象,以及要链接到该键的值. 然后,该键经过哈希处

Map集合(双列集合)

Map集合(双列集合)Map集合是键值对集合. 它的元素是由两个值组成的,元素的格式是:key=value. Map集合形式:{key1=value1 , key2=value2 , key3=value3 , .. } * Map集合系列: Map<K,V>(接口) / HashMap<K,V>(实现类) / LinkedHashMap<K,V>注意:Map集合只支持引用数据类型的元素存储. Map集合特点: 键是无序不重复的. 重复的键,后面加入的会直接覆盖前面.

双列集合框架:Map(个人理解)

双列集合框架:Map1.常用实现类结构|----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y = f(x)* |----HashMap:作为Map的主要实现类:线程不安全的,效率高:存储null的key和value* |----LinkedHashMap:保证在遍历map元素时,可以照添加的顺序实现遍历.* 原因:在原的HashMap底层结构基础上,添加了一对指针,指向前一个和后一个元素.* 对于频繁的遍历操作,此类执行效率高于HashMap.* |----Tre

JAVA双列集合HashMap

HashMap 双列集合HashMap是属于java集合框架3大类接口的Map类,   Map接口储存一组成对的键-值对象,提供key(键)到value(值)的映射.Map中的key不要求有序,不允许重复.value同样不要求有序,但允许重复. Iterator接口是负责定义访问和遍历元素的接口 1. 使用Iterator迭代器缺点: 1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能 2. ListIterator和Iterator都有hasNex

集合(三)------双列集合

所谓双列集合就是存在映射关系并且是成对存在的. 双列集合体系: -------------| Map  如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复.----------------| HashMap  底层也是基于哈希表实现 的.----------------| TreeMap   TreeMap也是基于红黑树(二叉树)数据结构实现 的, 特点:会对元素的键进行排序存储.----------------| Hashtable 和ha

获取单列集合,双列集合,数组的Stream流对象以及简单操作

获取流对象 获取单列集合,双列集合,数组的流对象 单列集合获取流对象: 1.java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此方式获取流. public class StreamTest01 { List<String> list = new ArrayList<>(); Stream<String> stream1 = list.stream(); Set<String> set =

java基础35 双例集合Map及其常用方法

单例集合的体系: ---------| collection  单例集合的根接口--------------| List  如果实现了list接口的集合类,具备的特点:有序,可重复       注:集合中的有序不是指自然顺序,而是指添加进去的顺序与出来的顺序是一致的------------------| ArrayList  ArrayList底层维护了一个object数组的实现的.(线程不安全),特点:查询速度快,增删速度慢.(有序,可重复)------------------| Linked

Collection单列集合 Map双列集合

Map集合:该集合存储键值对,一对一对往里存.而且要保证键的唯一性. 1.添加 put(K key, V value) putAll(Map<? extends K,? extends V> m) 2.删除 clear() remove(Object key) 3.判断 containsKey(Object key) containsValue(Object value) isEmpty() 4.获取 get(Object key) :获取值 size() values() entrySet(