美文网首页
Java基础笔记总结(11)-集合(3)Map的概述以及基本使用

Java基础笔记总结(11)-集合(3)Map的概述以及基本使用

作者: 吵吵先生 | 来源:发表于2019-01-25 21:12 被阅读0次

    Map集合概述特点

    一个映射不能有重复的键,每个键最多映射到一个值

    Map和Collection接口的区别

    Map是双列的,而Collection是单列的

    Map的键是唯一的,而Collection的子体系Set(TreeSet HashSet LinkedHashSet)是唯一的

    Map集合的数据结构针对键有效,与值无关,Collection集合的数据结构是针对元素有效

    注意:在HashSet底层执行的是Map的操作

    v = put(key,value)指定的值与映射关联(v返回的是被覆盖的值)

    相同的键不存储,仅仅值覆盖

    v = remove(key);根据键删除元素,返回键对应的值

    boolean flg = map.containsKey(key);

    boolean flg = map.containsValue(value);

    map.size();

    -----------------------------------------------------

    Map集合的遍历(没有迭代器,不能直接迭代)

    Set<E> keySet = map.keySet();

    Iterator<E> it = keSet.iterator();

    while(it.hasNext()){

    E e = it.next;

    T t = map.get(e);   

    }

    -----------------------------------------------------

    利用增强for循环

    for(E keyE:map.keySet()){

      T t = map.get(keyE);

    }

    HashMap<String,Integer> hm = new HashMap();

    hm.put("",23);

    Set<Map.Entry<String,Integer>> entrySet = hm.entrySet();

    Iterator it = entrySet.iterator();

    for(it.hasNext){

    Entry<String,Integer> en = hm.entrySet();

    String key = en.getKey();

    String value =en.getValue();

    }

    或者使用增强for

    for(Entry<String,Integer> en:hm.entry.Set()){}

    -----------------------------------------------------

    集合框架(如何保证键的唯一)

    HashMap<Student,String> hm = new HashMap<>();

    hm.put(new Student("",""),str);

    必须重写HashCode方法和equals方法

    LinkedHashMap的概述和使用

    LinkedHashMap<String,Integer> lhm = new LinkedHashMap<>();

    lhm.put("xx",23);

    -------------------------------------------------------

    HashMap嵌套

    HashMap<Student,String> hm = new HashMap<>();

    hm.put(new Student("zs"23,),"北京");

    HashMap<HashMap<Student,String>, String> hm2 = new HashSet();

    for(HashMap<Student,String> h:hm2.keySet()){

    String value = h.get(h);

    //遍历键的双列集合对象

    for(Student key:h.keySet()){

    String value2 = h.get(key);

    }

    }

    ---------------------------------------------------------

    TreeMap

    TreeMap<Student,String> tm = new TreeMap<>();

    tm.put(new Student("",xxx),"");

    需要实现Comparable接口

    return num==0?this.name.equals(another):num;

    或者

    TreeMap<Student,String> tm = new TreeMap<>(new Comparator(Student){

    public int compare(Student s1,Student s2){

    return num == 0?s1.xxx.equals(s2..x):num;

        }

    });

    根据键值获取每个字符出现的次数

    思路 如果出现的键相同,则使用HashMap 如果出现重复的键,则使用

    关键语句:hm.containsKey(c );

    ----------------------------------------

    Hashtable (Vector类似)被HashTable去除了

    HashMap 是线程不安全的,效率高JDK1.2

    HashTable是线程安全的,效率低 JDK1.0

    HashMap可以存Null键和Null值

    Hashtable 不能存储null值和null键

    ----------------------------------------------

    Collections工具类常用概述

    Public static<T> void sort(List<T> list);

    public static<T> int BinarySearch(List<T> list,T  key);

    如果搜索键在list中,则返回索引,如果没有则返回(-插入点-1)

    Collections.max(list); 根据默认结果获取集合最大值

    Collections.reverse(list); 反转集合

    Collection.shuffle(list);随机置换 

    -----------------------------------------------

    斗地主:

    利用HashMap 并且根据索引获取值,并将索引放入Arraylist洗牌,最后发牌后放入到TreeSet集合中

    ------------------------------------------------

    泛型固定下边界

    <?super E>

    泛型固定上边界

    <? extends E>

    相关文章

      网友评论

          本文标题:Java基础笔记总结(11)-集合(3)Map的概述以及基本使用

          本文链接:https://www.haomeiwen.com/subject/uegvjqtx.html