Java_Map集合LinkedHashMap
P地址和主机名,身份证号和个人,系统用户名与系统用户对象等,这种一一对应的关系,把它称之为映射。Java当中提供了专门的集合类用来存放这种映射关系的对象。
-
-
Map中的集合,元素是成对存在的(夫妻),每个元素由键和值两部分组成。通过键可以找到对应的值。
-
Collection中的集合我们称之为单列集合,Map中的集合我们称之为双列集合
-
-
HashMap:存储数据采用的哈希表结构,元素的存取顺序可能不一致,由于要保证键的唯一性,不重复,需要重写键的hashCode方法和equals方法。
-
***Map接口当中,含有两个泛型变量,在使用时,要为两个泛型变量赋予数据类型,两个泛型变量的数据类型可以相同,也可以不同。
Map接口当中的常用API方法Map<K,V>
-
public V put(K key,V value):把指定的键与指定的值添加到Map集合当中
-
public V remove(Object key):把指定的键所对应的键值对元素从Map集合当中删除,返回被删除元素的值
-
public V get(Object key):根据指定的键 获得在Map集合当中对应的值
-
public Set<K> keySet(): 获取Map集合当中的所有的key值,存储到Set集合当中
-
public Set<Map.Entry<K,V>> entrySet():获取到Map集合当中的所有的键值对对象的集合(Set集合)
如果要保证map中存储元素的顺序。主要体现在key值,可以用
HashTable
java.util.Hashtable<K,V> implements Map<K,V>接口
-
Hashtable:底层是一个哈希表,是一个线程安全的集合,是单线程的集合,速度慢
-
HashMap: 底层也是一个哈希表,是一个线程不安全的集合,是多线程的集合,速度快
-
-
Hashtable集合:不可以存储null值,null键
-
Hashtable 和 Vector集合一样,在JDK1.2版本之后被更先进的集合(HashMap,ArrayList)取代了
-
Hashtable有一个子类Properties依然活跃在历史的舞台上
-
Properties集合是一个唯一和IO流相结合的集合
计算一个字符串中每个字符出现的次数 public static void show() { LinkedHashMap<Character, Integer> map = new LinkedHashMap<>(); String s = "hellowordhelloword"; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (map.get(c) == null) { map.put(c, 1); } else { map.put(c, map.get(c) + 1); } } System.out.println(map); }