java LinkedHashMap,TreeMap,HashMap

 1     /**
 2  3      * 需求:统计字符串中每个字符出现的次数
 4      *
 5      * 分析:
 6      * 1,定义一个需要被统计字符的字符串
 7      * 2,将字符串转换为字符数组
 8      * 3,定义双列集合,存储字符串中字符以及字符出现的次数
 9      * 4,遍历字符数组获取每一个字符,并将字符存储在双列集合中
10      * 5,存储过程中要做判断,如果集合中不包含这个键,就将该字符当作键,值为1存储,如果集合中包含这个键,就将值加1存储
11      * 6,打印双列集合获取字符出现的次数
12      */
13     public static void main(String[] args) {
14         //1,定义一个需要被统计字符的字符串
15         String s = "aaaabbbbbccccccccccccc";
16         //2,将字符串转换为字符数组
17         char[] arr = s.toCharArray();
18         //3,定义双列集合,存储字符串中字符以及字符出现的次数
19         HashMap<Character, Integer> hm = new HashMap<>();
20         //4,遍历字符数组获取每一个字符,并将字符存储在双列集合中
21         for(char c: arr) {
22             //5,存储过程中要做判断,如果集合中不包含这个键,就将该字符当作键,值为1存储,如果集合中包含这个键,就将值加1存储
23             /*if(!hm.containsKey(c)) {            //如果不包含这个键
24                 hm.put(c, 1);
25             }else {
26                 hm.put(c, hm.get(c) + 1);
27             }*/
28             hm.put(c, !hm.containsKey(c) ? 1 : hm.get(c) + 1);
29         }
30         //6,打印双列集合获取字符出现的次数
31
32         for (Character key : hm.keySet()) {                //hm.keySet()代表所有键的集合
33             System.out.println(key + "=" + hm.get(key));//hm.get(key)根据键获取值
34         }
35     }
HashMap<Student, String> hm88 = new HashMap<>();
HashMap<Student, String> hm99 = new HashMap<>();    //hm88.put(...)...
HashMap<HashMap<Student, String>, String> hm = new HashMap<>();
        hm.put(hm88, "甲");
        hm.put(hm99, "乙");

        //遍历双列集合
        for(HashMap<Student, String> h : hm.keySet()) {        //hm.keySet()代表的是双列集合中键的集合
            String value = hm.get(h);                        //get(h)根据键对象获取值对象
            //遍历键的双列集合对象
            for(Student key : h.keySet()) {                    //h.keySet()获取集合总所有的学生键对象
                String value2 = h.get(key);

                System.out.println(key + "=" + value2 + "=" + value);
            }
        }

  

时间: 2024-08-26 20:42:04

java LinkedHashMap,TreeMap,HashMap的相关文章

HashMap,HashTable,LinkedHashMap,TreeMap的区别

1.   Map简介 Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值.Map用于存储键值对,根据键得到值,因此不允许键重复,值可以重复. 1.1.  HashMap HashMap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度.HashMap最多只允许一条记录的键为Null;允许多条记录的值为Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap

HashMap,LinkedHashMap,TreeMap的区别(转)

Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复.Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的.HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致.如果需要同步,可以用 Collections的synchronizedM

10 HashMap,Map.Entry,LinkedHashMap,TreeMap,Hashtable,Collections类

Map集合的功能概述 添加功能 * V put(K key,V value):添加元素.            * 如果键是第一次存储,就直接存储元素,返回null            * 如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值 删除功能 * void clear():移除所有的键值对元素        * V remove(Object key):根据键删除键值对元素,并把值返回 判断功能 * boolean containsKey(Object key):判断集合是否包

HashMap,LinkedHashMap,TreeMap的区别

Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复.Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的.HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致.如果需要同步,可以用 Collections的synchronizedM

[Java基础要义]HashMap、LinkedHashMap元素遍历机制探讨

Map作为键值对Entry<K,V>的的容器,对其内部 键值对Entry<K,V> 的遍历总归是要有一个顺序的. 本文重点讨论HashMap及其子类LinkedHashMap的遍历机制,总结出两者的特点和适用情况.  CSDN-2014博客之星投票啦 CSDN-2014博客之星   评选开始啦,如果您觉得我的文章对您有所帮助,请您点击左边栏的图片投我一票,您的支持是我分享知识的强大动力! 1.HashMap的遍历机制 HashMap 提供了两个遍历访问其内部元素Entry<k

LinkedHashMap和HashMap的比较使用

昨天做一道题,用hashmap总是时间超时,后来看了看别人的分享,发现将HashMap换成LinkedHashMap就可以 同时拥有Linkedlist 和HashMap的好处了,同时节省了自己处理的时间.不错的数据结构! 下面是在网上找到的有关LinkedHashMap和HashMap的比较的说明,记录在此,加深记忆! import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; imp

【JAVA】六 JAVA Map 一 HashMap

[JAVA]六 JAVA Map 一 HashMap JDK API java.util Interface Map Type Parameters: K - the type of keys maintained by this map V - the type of mapped values All Known Subinterfaces: Bindings, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, LogicalMe

LinkedHashMap和HashMap的比较使用(转)

由于现在项目中用到了LinkedHashMap,并不是太熟悉就到网上搜了一下. import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; public class TestLinkedHashMap {   public static void main(String args[])   {    System.out.println("**

(转载)Java 8 认识 HashMap

原链接:传送门 摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型.随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等.本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理. 简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap.Hashtable.Linked