java之map集合

如果程序中存储了几百万个学生,而且经常需要使用学号来搜索某个学生,那么这个需求有效的数据结构就是Map。Map是一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是整数。在Map中键(key)可以使任意类型的对象。Map中不能有重复的键(Key),每个键(key)都有一个对应的值(value)。一个键(key)和它对应的值构成map集合中的一个元素。

Map中的元素是两个对象,一个对象作为键,一个对象作为值。键不可以重复,但是值可以重复。

看顶层共性方法找子类特有对象.

interface Map<K,V>

K - 此映射所维护的键的类型

V - 映射值的类型

概念

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

特点

Key和Value是1对1的关系,如:门牌号 :家  老公:老婆

双列集合

---| Map  接口    将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

---| HashMap  采用哈希表实现,所以无序

---| TreeMap   可以对健进行排序

---|Hashtable:

底层是哈希表数据结构,线程是同步的,不可以存入null键,null值。

效率较低,被HashMap 替代。

---|HashMap:

底层是哈希表数据结构,线程是不同步的,可以存入null键,null值。

要保证键的唯一性,需要覆盖hashCode方法,和equals方法。

---| LinkedHashMap:

该子类基于哈希表又融入了链表。可以Map集合进行增删提高效率。

---|TreeMap:

底层是二叉树数据结构。可以对map集合中的键进行排序。需要使用Comparable或者Comparator 进行比较排序。return 0,来判断键的唯一性。

总结:

Map与Collection在集合框架中属并列存在,

1.Map存储的是键值对,

2..Map存储元素使用put方法,Collection使用add方法

3..Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素

4..Map集合中键要保证唯一性

5..也就是Collection是单列集合, Map 是双列集合。

Map一次存一对元素, Collection 一次存一个。Map 的键不能重复,保证唯一。

Map 一次存入一对元素,是以键值对的形式存在.键与值存在映射关系.一定要保证键的唯一性.

时间: 2024-10-09 05:31:33

java之map集合的相关文章

Java遍历Map集合方法

package testMap; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /**  * 循环遍历Map集合  *   * @author Administrator  *   */ pub

java中map集合的迭代

import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { public static void main(String[] args) { Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "a"); map.put(2, "b

java中Map集合的理解

Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.jdk1.0.效率低. |--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的.将hashtable替代,jdk1.2.效率高. |--TreeMap:底层是二叉树数据结构.线程不同步.可以用于给map集合中的键进行排序. 和Set很像.其实大家,Set底层就是使用了Map集合. /* map集合的两种取出方式: 1,Set<k> keySe

java基础 Map集合

集合 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下 Collection接口是集合的根接口,没有蹄冻这个接口的直接实现类,但是却又其让其被继承的长   生的两个接口就是set与list .Set中不能包含重复的元素.List是一个有序的集合 List 有序  可重复的 List里存放的对象是有序的,同时也是可以重复的,list 关注的是索引,拥有一系列和索引相关的方法,查询速度快 因为是会伴随这后面数据的移动,所有插入删除数据速度慢 Set 无序 不能重复 Set是无序的

Java 实现Map集合排序功能

第一步:Map中新增sort临时键 // 初始化Map集合 List<Map<String, String>> columns = new ArrayList<Map<String, String>>(); Map<String, String> c1 = new HashMap<String,String>(); c1.put("sort", "8"); c1.put("title&

c#中泛型集合directory和java中map集合对比

c#中directory的基本用法1.创建及初始化 Dictionary<int, string> myDictionary = new Dictionary<int, string>(); 2.添加元素 myDictionary.Add("C#",0); myDictionary.Add("C++",1); myDictionary.Add("C",2); myDictionary.Add("VB",

Java中map集合系列原理剖析

看了下JAVA里面有HashMap.Hashtable.HashSet三种hash集合的实现源码,这里总结下,理解错误的地方还望指正 HashMap和Hashtable的区别 HashSet和HashMap.Hashtable的区别 HashMap和Hashtable的实现原理 HashMap的简化实现MyHashMap HashMap和Hashtable的区别 两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全Hashtable的实现方法里面都添加了synchron

Java List Map集合遍历方法

Map遍历 方法一 在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. [java] view plain copy Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println(&qu

Java中Map集合的遍历方式

方法一:在for-each循环中使用entries来遍历 1 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); 2 3 for (Map.Entry<Integer, Integer> entry : map.entrySet()) { 4 5 System.out.println("Key = " + entry.getKey() + ", Value = "