java容器---Map扩展
来源:互联网 发布:bt种子编辑器 for mac 编辑:程序博客网 时间:2024/06/04 18:14
Map集合的扩展:
例子:一个公司类,包括人力资源部门和技术部门。每个部门包括姓名和年龄
要求存入到map集合中。
步骤:
利用嵌套的Map集合
第一个map集合存储公司部门和HashMap<String,String>
HashMap<String,String> 中存储对应的部门人姓名和年龄
Map<String,HashMap<String,Integer>> company = Map<String,HashMap<String,String>>
HashMap<String>
import java.util.*;public class MapDemo2{public static void main(String []args){Map<String,HashMap<String,Integer>> company = new HashMap<String,HashMap<String,Integer>>();HashMap<String,Integer> renli = new HashMap<String,Integer>();HashMap<String,Integer> jishu = new HashMap<String,Integer>();company.put("renli",renli);company.put("jishu",jishu);renli.put("liu",18);renli.put("li",19);jishu.put("xu",18);jishu.put("wang",19);Set<String> keySet = company.keySet();Iterator<String> it = keySet.iterator();while(it.hasNext()){String bumen = it.next();System.out.println("公司部门:"+bumen);HashMap<String,Integer> hs = company.get(bumen);getInfo(hs);}}public static void getInfo(HashMap<String,Integer> hashMap){Set<Map.Entry<String,Integer>> entrySet = hashMap.entrySet();Iterator<Map.Entry<String,Integer>> it = entrySet.iterator();while(it.hasNext()){Map.Entry<String,Integer> me = it.next();String name = me.getKey();Integer age = me.getValue();System.out.println("name:"+name+" age:"+age);}}}
算法描述
给出一段字符串,要求输出字符串中每个字符以及字符出现的次数。并且按照字符出现的次数又打到进行排序
例如 输入:"jjjaaabccd"输出: a(3)j(3)c(2)b(1)d(1)
算法实现:
1、将字符串转换成字符数组
2、定义一个map集合,因为要实现某种顺序,所以要用TreeMap()集合
3、将字符数组与map集合中进行匹对,
如果map中不存在该字符,将字符存入到map的key值中,并将value值+1,
如果存在该字符,将value值取出+1
4、将结果存入到map集合中,并且创建一个比较器实现Comparator方法,
按照Value值的大小来进行比较
5、按照格式遍历输出字符串
import java.util.*;import java.util.Map.Entry;public class TreeMapDemo{public static void main(String []args){System.out.println("请输入字符串");Scanner input = new Scanner(System.in);String str = input.next();//String str = "aabbbbbccda";char[] ch = str.toCharArray();Map<Character,Integer> map = getChar(ch);if(map.isEmpty())System.out.println("空字符");valueSort(map);}/** * 按照value值进行排序 * 思路,将Map集合转换成List集合,利用Collections.sort(list,Comparator<>)方法进行排序 * @param map */public static void valueSort(Map<Character,Integer> map){System.out.println("--------");List<Entry<Character, Integer>> list = new ArrayList<Map.Entry<Character,Integer>>(map.entrySet());Collections.sort(list,new Comparator<Map.Entry<Character, Integer>>() {@Overridepublic int compare(Entry<Character, Integer> o1,Entry<Character, Integer> o2) {return o2.getValue() - o1.getValue();}});Iterator<Entry<Character, Integer>> it = list.iterator();while(it.hasNext()){Map.Entry<Character,Integer> me = it.next();char c = me.getKey();int v = me.getValue();System.out.println(c+"("+v+")");}}public static Map<Character,Integer> getChar(char[] ch){Map<Character,Integer> map = new TreeMap<Character,Integer>();for(int i=0;i<ch.length;i++){if(ch[i]<'a'&&ch[i]>'z'||ch[i]<'A'&&ch[i]>'Z')continue;Integer value = map.get(ch[i]); //通过key值获取map中存入的value值if(value == null){ //如果value为空,表示map中不存在该字符,我们将它存入到map中map.put(ch[i],1);}else{ //如果不为空,表示map中已经存在该字符,我们将value值+1在存入到map中value++;map.put(ch[i],value);}}return map;}}
0 0
- java容器---Map扩展
- Java容器分析--Map
- Java容器分析--Map
- Java容器分析--Map
- Java容器分析--Map
- Java容器之Map
- Java 容器(四) Map
- java容器之Map
- java容器之Map
- Java容器(Map)
- java map扩展知识
- JAVA,List,Map,Set,容器
- JAVA,List,Map,Set,容器
- JAVA,List,Map,Set,容器
- JAVA,List,Map,Set,容器
- Java容器map的用法
- [Java] 容器-05 Map 方法
- JAVA,List,Map,Set,容器
- C++大根堆
- http请求服务
- python的一些日期处理方法(工具)
- web.xml中<context-param>与<init-param>的区别与作用
- 使用第三方短信服务商云片发送短信(php样例)
- java容器---Map扩展
- 一看就会Android之手机震动的设置
- 先进驾驶辅助系统ADAS一些技术应用小结
- 和最大的连续子序列
- 九度OJ 1178:复数集合 (插入排序)
- Svn常用操作命令
- 演示动画怎么实现的
- PHP部分字符串函数汇总
- 算法求第K小元素思路