TreeMap类

import java.util.Set;
import java.util.TreeMap; public class IntegerDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub TreeMap<String, String> tm = new TreeMap<String, String>(); tm.put("hello", "world");
tm.put("java", "c++");
tm.put("sql", "os"); System.out.println(tm); Set<String> set = tm.keySet(); for (String key : set) {
String value = tm.get(key);
System.out.println(key + "---" + value);
}
}
}

/*
* 要求:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
*
* 分析:
* A:定义一个字符串
*
* B:定义一个TreeMap集合
* 键:Character
* 值:Integer
*
* C:把字符串转换为字符数组
*
* D:遍历字符串数组,得到每一个字符
*
* E:将D得到的字符作为键拿到集合查询,看返回值
* 是null,说明键不存在,就把该字符作为键,1作为值存储
* 不是null,说明键存在,把值加1,然后重写存储该键和值
*
* F:定义字符串缓冲区变量
*
* G:遍历集合,得到键和值,进行字符串拼接
*
* H:输出字符串
* */

import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap; /*
* 要求:"aababcabcdabcde",获取字符串中每一个字母出现的次数要求结果:a(5)b(4)c(3)d(2)e(1)
*
* 分析:
* A:定义一个字符串
*
* B:定义一个TreeMap集合
* 键:Character
* 值:Integer
*
* C:把字符串转换为字符数组
*
* D:遍历字符串数组,得到每一个字符
*
* E:将D得到的字符作为键拿到集合查询,看返回值
* 是null,说明键不存在,就把该字符作为键,1作为值存储
* 不是null,说明键存在,把值加1,然后重写存储该键和值
*
* F:定义字符串缓冲区变量
*
* G:遍历集合,得到键和值,进行字符串拼接
*
* H:输出字符串
* */ public class IntegerDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub // A:定义一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine(); // B:定义一个TreeMap集合
TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>(); // C:把字符串转换为字符数组
char chs[] = line.toCharArray(); // D:遍历字符串数组,得到每一个字符
for (char ch : chs) {
// E:将D得到的字符作为键拿到集合查询,看返回值
Integer i = tm.get(ch);
if (i != null) {
i++;
tm.put(ch, i);
} else {
tm.put(ch, 1);
}
} // F:定义字符串缓冲区变量
StringBuilder sb = new StringBuilder(); // G:遍历集合,得到键和值,进行字符串拼接
Set<Character> set = tm.keySet();
for (Character key : set) {
Integer value = tm.get(key);
sb.append(key).append("(").append(value).append(")");
} // H:输出字符串
String result = sb.toString();
System.out.println(result);
}
}

类TreeMap的更多相关文章

  1. Map接口,Map.Entry,hashMap类,TreeMap类,WeakHashMap。

    Collection接口之前接触过,每次保存的对象是一个对象,但是在map中保存的是一对对象,是以key->value形式保存的. 定义: public interface Map<K,V ...

  2. SortedMap接口的实现类TreeMap介绍和实现Comparator自定义比较器(转)

    与SortedSet接口类似,SortedMap也是一个结构,待排序的Map,其一个比较常用的实现类是TreeMap. TreeMap的put(K key, V value)方法在每添加一个元素时,都 ...

  3. 计算机程序的思维逻辑 (43) - 剖析TreeMap

    40节介绍了HashMap,我们提到,HashMap有一个重要局限,键值对之间没有特定的顺序,我们还提到,Map接口有另一个重要的实现类TreeMap,在TreeMap中,键值对之间按键有序,Tree ...

  4. Java TreeMap 源码解析

    继上篇文章介绍完了HashMap,这篇文章开始介绍Map系列另一个比较重要的类TreeMap. 大家也许能感觉到,网络上介绍HashMap的文章比较多,但是介绍TreeMap反而不那么多,这里面是有原 ...

  5. Java——(七)Map之HashMap和Hashtable实现类

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Map Map用于具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的ke ...

  6. java集合系列——Map之TreeMap介绍(九)

    一.TreeMap的简介 TreeMap是一个有序的key-value集合,基于红黑树(Red-Black tree)的 NavigableMap实现.该映射根据其键的自然顺序进行排序,或者根据创建映 ...

  7. 《Java大学教程》—第17章 Java聚焦类框架

    由所有聚焦类构成,在java.util包中,包含三个重要接口:*    List列表:元素为单个对象,元素在列表中是有序.可重复*    Set集合:元素为单个对象,元素在集合中无序.不可重复*    ...

  8. Java编程的逻辑 (43) - 剖析TreeMap

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  9. TreeMap实现原理及源码分析之JDK8

    转载 Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例 一.TreeMap 简单介绍 什么是Map? 在数组中我们通过数组下标来对数组内容进行索引的,而在Map中我们通过对象来对 ...

随机推荐

  1. 前端校招知识体系之HTML5

    啥是HTML5?官方说HTML5 是下一代的 HTML... 本文主要介绍HTML5三个方面的知识,继续往下看看吧. 语义化标签 canvas&svg 响应式meta 一.语义化标签 语义化标 ...

  2. java 技术分享

    http://www.ccblog.cn/99.htm http://www.ccblog.cn/100.htm http://www.ccblog.cn/101.htm http://www.ccb ...

  3. easyUI相关文件的引入

    引入以下内容: <head> <meta http-equiv="Content-Type" content="text/html; charset=u ...

  4. 伟大的GIL

    GIL 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念.就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代 ...

  5. Windows 实用软件

    Useful tool Listary Ditto Winsnap Quick Look Myper Splash GifCam ScreenToGif Free Download Manage Si ...

  6. slots_doc_call属性

    class Foo: "这时文档doc属性" __slots__ = ["name","age"] #[“name”=None,“age&q ...

  7. [转]0day零距离

    前言: 想起这个话题,还要从早年网上的一则新闻说起--"美国联邦官员于2001年12月11日宣布,已破获一起以因特网为犯罪手段的特大软件盗版案--盗版软件的总价值至少高达10亿美元.据悉,该 ...

  8. pipeline语法学习日记

    1.pipeline 整合job的通用代码,比较基本 2.pipeline参数化构建

  9. java并发学习--第八章 JDK 8 中线程优化的新特性

    一.新增原子类LongAdder LongAdder是JDK8中AtomicLong的增强工具类,它与AtomicLong最大的不同就是:在多线程场景下,LongAdder中对单一的变量进行拆分成多个 ...

  10. springboot poi

    pom.xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</a ...