17.Map接口 Map没有继承Collection接口,Map提供key到value的映射.一个Map中不能包含相同的key,每个key只能映射一个value.Map接口提供3种集合的视图,Map的内容可以被当作一组key集合,一组value集合,或者一组key-value映射. 17.1.Hashtable类 Hashtable继承Map接口,实现一个key-value映射的哈希表,是同步的.任何非空(non-null)的对象都可作为key或者value.添加数据使用put(key, val…
Set接口与List接口的不同之处在于: 不允许有重复的数据. 定义如下: public interface Set<E>extends Collection<E> 主要方法与collection接口差不多. 常用子类: 散列存放:HashSet 有序存放:TreeSet. Set接口实例无法像List接口一样双向输出. package 类集; import java.util.HashSet; import java.util.Set; public class test1{ p…
一.Set接口实现类LinkedHashSet 实现继承图: 1.LinkedHashSet的全面说明 1) LinkedHashSet是 HashSet的子类 2) LinkedHashSet底层是一个LinkedHashMap,底层维护了一个数组+双向链表3)LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使用链表维护元素的次序(图),这使得元素看起来是以插入顺序保存的.4) LinkedHashSet 不允许添重复元素 底层结构展示: LinkedHashS…
Set 集合中元素不可重复,是无序的(存入和取出的顺序是不一样的), Set 接口中的方法和 Collection 接口一致. 常用子类: HashSet : 内部数据结构是哈希表, 是不同步的 LinkedHashSet : 存入和取出的顺序一致(有序) TreeSet : 可以对 Set 集合中的元素进行排序, 是不同步的. HashSet 哈希表如何确定元素是否相同? 判断两个元素的哈希值是否相同,其实判断的是对象的 hashCode() 方法 如果哈希值相同,再判断两个对象的内容是否相同…
Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的“子接口”如List和Set. 所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collectio…
Java中的集合(七)双列集合顶层接口------Map接口 一.Map接口的简介 通过List接口,我们知道List接口下的集合是单列集合,数据存储是单列的结构.Map接口下是一个键值对(key-value)的映射接口,Map集合中,不能包含重复的键,每个键只能映射一个值(元素),值可以重复,因此可以根据key快速查找value的值. (一).Hash(散列/哈希)的概念 1.hash(哈希) 想要清楚Map的数据结构,哈希是基本概念,我们先来看看什么是哈希?hash翻译为"散列",…
Hashtable和HashMap类有三个重要的不同之处.第一个不同主要是历史原因.Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现. 也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是.这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable,但你必须同样地为一个HashMap提供外同步.一个方便的方法就是利用Collections类的静态的synchroni…
一.概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. 1. Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储. 2. Map中的集合,元素是成对存在的(理解为夫妻).每个元素由键与值两部分组成,通过键可以找到所对应的值. 3.  Collection中的集合称为单列集合,Map中的集合称为双列集合. 4. 需要注意的是,Map中的集合不能包含重复的键,值可以重复:每…
Map接口与Collection接口的区别 Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储. Map中的集合,元素是成对存在的(理解为夫妻).每个元素由键与值两部分组成,通过键可以找对所对应的值. Collection中的集合称为单列集合,Map中的集合称为双列集合. 需要注意的是,Map中的集合不能包含重复的键,值可以重复:每个键只能对应一个值. Map中常用的集合为HashMap集合.LinkedHashMap集合. Map接口中常用集…
Map接口概述 Map与Collection并列存在.用于存储具有映射关系的数据 : key-value Map 中的 key 和 value 都可以是任何引用类型的数据 Map 中的 key 用Set来存放,不允许重复,key所在的类须重写hashCode()和equals()方法 常用String类作为Map的key key 和 value 之间存在单向一对一关系,即通过指定的 key 总能找到唯一的.确定的 value Map接口的常用实现类:HashMap.TreeMap.LinkedH…
jdk1.8.0_45源码解读——Map接口和AbstractMap抽象类的实现 一. Map架构 如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value).(02) AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API.其它Map的实现类可以通过继承AbstractMap来减少重复编码.(03) SortedMap 是继承于Map的接口.SortedMap中的内容是排序的键值对,排序的方法是通过比较器(Comparator).(04) N…
Map接口容器存放的是key-value对,由于Map是按key索引的,因此 key 是不可重复的,但 value 允许重复. 下面简单介绍一下Map接口的实现,包括HashMap,LinkedHashMap,WeakHashMap,Hashtable,IdentityHashMap和TreeMap.需要注意的是,Map接口并没有继承Collection接口! 1.HashMap HashMap 继承于AbstractMap,实现了Cloneable.java.io.Serializable接口…
Java集合框架之Map接口浅析 一.Map接口综述: 1.1java.util.Map<k, v>简介 位于java.util包下的Map接口,是Java集合框架的重要成员,它是和Collection接口同一等级的集合根接口 Map集合没有继承Collection接口,其提供的是key到value的映射,Map中不能包含相同的key值,每个key只能影射一个相同的value.key值还决定了存储对象在映射中的存储位置.但不是key对象本身决定的,而是通过散列技术进行处理,可产生一个散列码的整…
一.Map接口 Map提供的是key到value的映射.key不能重复,每个key只能映射一个value. 注:重复是指equals,但用equals()方法效率低,所以此处用hashCode()方法比较 key还决定了存储对象在映射中的存储位置,不是由key本身决定,而是通过一种散列技术处理产生的散列码,该散列码作为偏移量,对应分配给映射的内存区域的起始位置.Map集合包括Map接口和Map接口的所有实现类. Map接口中提供了集合的常用方法: 举例1:Map接口中方法的使用 import j…
1.List接口 1.1API总结 (1)是一个元素存取有序的集合 (2)是一个带有索引的集合,通过索引可以精确的操作集合中的元素 (3)集合中有可以重复的元素,通过元素的equals方法,来比较是否为重复的元素 (4)List接口的常用子类:ArrayList集合.LinkedList集合 1.2List接口中常用的方法 (1)add(Object e):向集合末尾处添加指定的元素 (2)add(int index,Object e):向集合指定索引处,添加指定的元素,原有元素依次后移 (3)…
Map 接口: 1. 实现 Map 接口的类是用来存储键-值(key-value)对: 2. Map 接口的实现类有 HashMap 和 TreeMap 等: 3. Map 类中存储的键-值对,通过键来标识,所以键值不能重复. 4. Map 接口的常用方法如下:    4.1 object put(K key, V value):将指定的值与此映射中的指定键关联(可选操作); 4.2 object get(Object key):返回指定键所映射的值: 4.3 object remove(Obj…
Java的集合可以分为两种,第一种是以数组为代表的线性表,基类是Collection:第二种是以Hashtable为代表的键值对. ... 线性表,基类是Collection: 数组类: person[] p; system.out.println(p.length);//报错,不允许对null对象进行任何实际操作.       person[] p=new person[5]; Vector类——数组的改进: 1)四个构造函数 Vector(int initialCapacity,int ca…
面试题: 1.HashMap和Hashtable的区别? HashMap:线程不安全,效率高,键和值都允许null值 Hashtable:线程安全,效率低,键和值都不允许null值 ArrayList代替Vector HashMapd代替Hashtable 2.List,Set,Map等接口是否都继承自Map接口? List,Set是继承自Collection接口 Map是Map的顶层接口 3.Collection和Collections的区别? Collection:是单列集合的顶层接口,有两…
Collection接口之前接触过,每次保存的对象是一个对象,但是在map中保存的是一对对象,是以key->value形式保存的. 定义: public interface Map<K,V> Map.Entry接口. 定义: public static interface Map.Entry<K,V> 常用方法: Map与Map.Entry关系: 常用子类: 以HashMap为例说明基本操作方法:put()增加内容,get()取出内容. 根据键取出内容. map.get(&q…
1.Map体系参考:http://java.chinaitlab.com/line/914247.htmlHashtable是JDK 5之前Map唯一线程安全的内置实现(Collections.synchronizedMap不算).Hashtable继承的是Dictionary(Hashtable是其唯一公开的子类),并不继承AbstractMap或者HashMap.尽管Hashtable和HashMap的结构非常类似,但是他们之间并没有多大联系.ConcurrentHashMap是HashMa…
概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311126 第1部分 Map概括 (01) Map 是“键值对”映射的抽象接口.(02) AbstractMap 实现了Map中的绝大部分函数接口.它减少…
2017-10-31 22:05:59 Map 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. HashMap是基于散列表实现的,插入.删除和定位元素时间复杂度平均能达到O(1). TreeMap基于红黑树(一种自平衡二叉查找树)实现的,时间复杂度平均能达到O(log n). Map的数据结构针对键值有效和值无关. *常用方法 public static void main(String[] args) { Map<String, String> map = new…
Java中的集合(十三) 实现Map接口的Hashtable 一.Hashtable简介 和HashMap一样,Hashtable采用“拉链法”实现一个哈希表,它存储的内容是键值对(key-value)映射.Hashtable 的实例有两个参数影响其性能:初始容量 (11)和 加载因子(0.75).容量 是哈希表中桶 的数量,初始容量 就是哈希表创建时的容量.注意,哈希表的状态为 open:在发生“哈希冲突”的情况下,单个桶会存储多个条目,这些条目必须按顺序搜索.加载因子 是对哈希表在其容量自动…
Map与Collection 并列存在,用于保存具有映射关系的数据:Key-Value Map中的Key和Value都可以是任何引用类型的数据 Map中的Key用Set存放,不允许重复,即同一个Map对象所对应的类,须重写HashCode()和equals()方法 常用String类作为Map的 "键" Key和vlaue之间存在单项一对一关系,即通过指定的Key总能找到唯一的,确定的value TestMap package com.aff.coll; import java.io.…
Map 集合 1,Collection中的集合,元素是孤立的,向季和忠储存的元素采用一个元素方式储存 2,Map中的集合,元素是成对存在的,每个元素中的集合称为双列集合 3,Collection中的集合称为单列集合,Map中的集合称为双列集合 4,注意:Map中的集合不能包含重复的键,值可以重复,每个键只能对应一个值 常用子类 Map子类分为HashMap集合与LinkedHashMap集合 HashMap:元素的存在顺序不能保持一致,要保证键的唯一,不重复, 需要重写Hashcode()方法,…
概述java.util.Map接口 Map<K,V> 有两个泛型 类型参数:K - 此映射所维护的键的类型V - 映射值的类型 特点:1.Map集合是双列集合,一个元素包含两个值,一个是key,一个是value 2.Map集合中的元素,key和value的数据类型可以相同,也可以不同 3.Map集合中的元素,key不允许重复,但是value可以重复 4.Map集合中的元素,key和value是一一对应的 Map常用子类 1)java.util.HashMap<K,V>集合 impl…
Map集合 java.util.Map<K,V>集合 Map集合的特点: 1.Map集合是一个双列集合,一个元素包含两个值(Key,Value) 2.Map集合中的元素,key和value的数据类型可以相同,也可以不相同 3.Map集合中的元素,key是不允许重复的,value是可以重复的 4.Map集合中的元素,key和value是一一对应的 Map常用子类 java.util.HashMap<K,V>集合 implement Map<K,V>接口 HashMap&l…
概要 学完了Map的全部内容,我们再回头开开Map的框架图. 本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同 转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3311126 第1部分 Map概括 (01) Map 是“键值对”映射的抽象接口.(02) AbstractMap 实现了Map中的绝大部分函数接口.它减少…
(一)集合框架: Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(实现接口的类).所有抽象出来的数据结构和操作(算法)统称为集合框架. 程序员在具体应用的时候,不必考虑数据结构和算法实现细节,只需要用这些类创建一些对象,然后直接应用就可以了,这样就大大提高了编程效率. (二)集合框架包含的内容: (三)集合框架的接口(规范)   Collection接口:存储一组不唯一,无序的对象 List接口:存储一组不唯一,有序的对象 Set接口:存储一组唯一,无序的对象 Map接口:…