黑马程序员技术交流社区

标题: Map [打印本页]

作者: 327037419    时间: 2015-9-8 10:22
标题: Map
基础考试题:


package test97;

import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;

/**
* 2、 取出一个字符串中字母出现的次数。 如:字符串:"abcdekka27qoq" , 输出格式为:a(2)b(1)k(2)...<Character,
* Integer>
*
* * 思路: 遍历字符串,拿每一个字符到TreeMap中去找, 如果存在则把该字符和值加1作为键和值存储到集合中;
* 如果不存在则把该字符和1作为键和值存储到集合中。
*
* @author Administrator
*
*/
public class Test980 {

        private static String str = "abcdekka27qoq";

        public static void main(String[] args) {
                checkStr();
        }

        private static void checkStr() {

                String s = "abcdekka27qoq";
                char[] cs = s.toCharArray();

                TreeMap<Character, Integer> map = new TreeMap<>();// 创建一个TreeMap
                for (char c : cs) {// 遍历 因为你数据是数组所以只能用for增强
                        Character key = c;
                        Integer value = map.get(c);
                        if (value == null) {// 判断,如果值为空,则向集合中添加(key,1),如果不为空则添加
                                                                // (key,value+1)
                                map.put(key, 1);
                        } else {
                                map.put(key, value + 1);
                        }
                }
                //System.out.println(map);
                 
                // 遍历集合

        /*        Set<String> set = map.keySet();map里没有数据
                Iterator<String> it = set.iterator();

                while (it.hasNext()) {
                        String s = (String) it.next();// 这是Key
                        Integer integer = map.get(s);//这是value
                        if (s==null) {
                                        map.put(s, 1);
                        }else {
                                map.put(s, integer+1);
                        }
               
                }*/
                                //取出键值对
                Set<Map.Entry<Character,Integer>> entrySet = map.entrySet();
                        //用entrySet里的迭代器方法
                        Iterator<Map.Entry<Character, Integer>> iterator = entrySet.iterator();
                       
                        while (iterator.hasNext()) {
                                Map.Entry<Character,Integer> entry = iterator
                                                .next();
                               
                                                //Map.Entry的方法
                                                Character key = entry.getKey();
                                                Integer value = entry.getValue();
                                               
                                               
                                                System.out.print(key + "("+value +")");// 按规定的格式输出
                        }
               
               
               
               
               

        }
}

作者: ln0491    时间: 2015-9-8 10:52
学习了。。。。。。。。。。
作者: 小刘123    时间: 2015-9-8 11:28
好厉害,赞一个
作者: 话不多先生00    时间: 2015-9-8 18:09
赞一个...............




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2