"fdgavcbsacdfs" 获取该字符串中,每一个字母出现的次数。 要求打印结果是:a(2)b(1)...; 思路:
 对于结果的分析发现,字母和次数之间存在着映射关系。而且这种关系很多。 很多就需要存储,能存储映射关系的容器有数组和Map集合。
关系一方式中是有序编号吗?有就使用数组,没有!那就是使用Map集合。 又发现可以保证唯一性的一方具备着顺序如a b c.....
所以可以使用TreeMap集合。
这个集合中应该存储的是字母和次数的对应关系。
1,因为操作的是字符串中的字母,所以先将字符串变成一个字符数组。 2,遍历字符数组,用每一个字母作为键去查Map集合这个表。
如果该字母键不存在,就将该字母作为键1作为值存储到Map集合中,代表出现一次。
如果该字母键存在,就将该字母键对应值取出并自增,再将该字母和自增后的值存储到Map集合中, 键相同值会覆盖,这样就记录住了该字母的次数。
3,遍历结束,Map集合就记录所有字母的出现的次数。

 package exmap;

 import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap; public class ExMap { public static void main(String[] args) {
// TODO Auto-generated method stub Map<Character, Integer> map = null;
map = new TreeMap<Character, Integer>();
map.put('a', 0);
map.put('b', 0);
map.put('c', 0);
map.put('d', 0);
map.put('f', 0);
map.put('g', 0);
map.put('s', 0);
map.put('v', 0); // 把字符串中有的字母放在TreeMap集合表里面 String a = "fdgavcbsacdfs";
char[] array = a.toCharArray(); // 把字符串转成字符数组
int num = 0;
Set<Character> keys = map.keySet();
Iterator<Character> iter = keys.iterator();
while (iter.hasNext()) {
Character str = iter.next();
for (int i = 0; i < a.length(); i++) {
if (array[i] == str) {
num = map.get(str) + 1;
map.put(str, num);
}
} }
Set<Character> keys1 = map.keySet();
Iterator<Character> iter1 = keys.iterator();
while (iter1.hasNext()) {
Character str1 = iter1.next();
System.out.print(str1 + "(" + map.get(str1) + ")");
} }
}

map练习小例题的更多相关文章

  1. Linux 信号量 生产者消费者小例题

    菜鸟偶遇信号量,擦出火花(只有不熟才会有火花).于是上网搜资料和看<Unix环境高级编程>实现了几个小例题,高手请勿喷!这几位写得非常好啊: 题目来源: http://www.it165. ...

  2. hadoop 使用map合并小文件到SequenceFile

    上一例是直接用SequenceFile的createWriter来实现,本例采用mapreduce的方式. 1.把小文件整体读入需要自定义InputFormat格式,自定义InputFormat格式需 ...

  3. mysql连接查询经典小例题

    mysql连接查询: Mysql连接查询支持多表连接 对同一张表可以重复连接多次(别名在多次连接同一张表时很重要) 例题1: 下面有2张表 teams表 比赛结果表:result 问题: 得出一张表: ...

  4. 使用map()的小陷阱:parseInt

    假设我们想要把一个字符串数组的每一项转换成整数,我们很自然就想到了把parseInt作为回调函数传给map()函数,但这样做可能会出现意想不到的结果: var strArr = ["1&qu ...

  5. map用法小例子

    一. Map< Key , Value > m_Eg; 一般赋值表示成: TypeElem  value; m_Eg[key]  =  value; 或 m_Eg.insert(make_ ...

  6. map的嵌套 + 例题(水果)

    水果 http://acm.hdu.edu.cn/showproblem.php?pid=1263 Problem Description 夏天来了~~好开心啊,呵呵,好多好多水果~~Joe经营着一个 ...

  7. Java 13天基础 06天map集合小练习(黑马程序员) 统计字符串中每个字符出现的次数 (经典面试题)

    import java.util.HashMap; import java.util.Map; import java.util.Scanner; /** * 目标 : 输出一个字符串中每个字符出现的 ...

  8. django一对多关系的小例题

    urls.py from django.conf.urls import urlfrom django.contrib import adminfrom son1.views import * url ...

  9. C#ArrayList集合——小例题

    用两种方法编写题目:输入姓名,语文分数,数学分数,英语分数到集合,求语文总分,数学平均分,英语最高分以及英语最高分是谁.法一:一个集合的做法 Console.Write("输入总人数:&qu ...

随机推荐

  1. jqueryeasyUI dialog 弹出窗口超出浏览器,导致不能关闭的bug解决方案

    jqueryeasyUI dialog 弹出窗口超出浏览器,导致不能关闭的bug解决方案 2014年8月30日 3233次浏览 相信很多前端朋友都用过jqueryeasyUI,jqueryeasyUI ...

  2. laravel基础课程---12、lavarel的ajax操作2(lavarel的ajax使用总结)

    laravel基础课程---12.lavarel的ajax操作2(lavarel的ajax使用总结) 一.总结 一句话总结: 比较简单:就是js请求ajax,然后控制器获取请求参数,返回数据即可 1. ...

  3. 分享知识-快乐自己:MySQL中的约束,添加约束,删除约束,以及一些其他修饰

    创建数据库: CREATE DATABASES 数据库名: 选择数据库: USE 数据库名: 删除数据库: DROP DATAVBASE 数据库名: 创建表: CREATE TABLE IF NOT ...

  4. Java_图片处理_02_图片处理工具类库

    二.参考文档 1.Java图片处理工具类库

  5. listen 77

    Your Dog Wants YOUR Food Does your puppy turn his nose up at his own chow—because he wants some of w ...

  6. 机器视觉 之 Gabor Feature

    在机器视觉中,gabor feature是一种比较常见的特征,因为其可以很好地模拟人类的视觉冲击响应而被广泛应用于图像处理, gabor feature 一般是通过对图像与gabor filter做卷 ...

  7. laravel登录后台500错误!

    登录页面正常显示,填写完用户名密码 点登录后 页面一片空白,没有任何输出.debug可以看到一个500错误,preview和response都是空的.追踪了一下 发现在public/index.php ...

  8. javaCV入门指南:序章

    前言 从2016年6月开始写<javacv开发详解>系列,到而今的<javacv入门指南>,虽然仅隔了两年多时间,却也改变了很多东西. 比如我们的流媒体技术群从刚开始的两三个人 ...

  9. jupyter-notebook重设项目工作路径

    一. . Anaconda Prompt 命令(方法没生效) 1 选择一个用于存放config文件的文件夹(先创建) 2 在cmd中进入该文件夹的路径 3在cmd中 输入​命令 jupyter not ...

  10. SimpliciTI简介

    SimpliciTI简介 SimpliciTI是TI开发的一份专门针对其CCxxxx系列无线通信芯片的网络协议.按照其官方说法SimpliciTI是一个基于连接的点对点通讯协议.它支持两种网络拓扑结构 ...