关于HashMap和TreeMap的一些注意点
来源:互联网 发布:python 函数对象 编辑:程序博客网 时间:2024/05/17 23:35
题目:字符统计
对字符中的各个英文字符(大小写分开统计),数字,空格进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。
输入例子:
aadddccddc
输出例子:
dca
关于HashMap和TreeMap的一些注意:
TreeMap构造方法中的Comparator只能对key排序,不能对Map.Entry排序。
Collectons.sort()方法只能对List排序,不能对Set排序。
import java.util.*;public class Main{ public static HashMap<Character,Integer> map=new HashMap(); public static void main(String[] args){ Scanner in=new Scanner(System.in); while(in.hasNext()){ String s=in.nextLine(); HashMap<Character,Integer> map=new HashMap(); for(int i=0;i<s.length();i++){ if(s.charAt(i) >= 'A'&&s.charAt(i) <= 'Z'||s.charAt(i) >= 'a'&&s.charAt(i) <= 'z'||s.charAt(i) >= '0'&&s.charAt(i) <= '9'||s.charAt(i) == ' '){ if(map.containsKey(s.charAt(i))){ map.put(s.charAt(i),map.get(s.charAt(i))+1); }else{ map.put(s.charAt(i),1); } } } Set<Map.Entry<Character,Integer>> set=map.entrySet(); ArrayList<Pair> array=new ArrayList(); for(Map.Entry<Character,Integer> entry: set){ array.add(new Pair(entry.getKey(),entry.getValue())); } Collections.sort(array,new Comparator<Pair>(){ public int compare(Pair first,Pair second){ if(first.count!=second.count){ return second.count-first.count; }else{ return first.c-second.c; } } }); StringBuilder sb=new StringBuilder(); for(Pair pair: array){ sb.append(pair.c); } System.out.println(sb.toString()); } in.close(); } static class Pair{ char c; int count; public Pair(char c,int count){ this.c=c; this.count=count; } }}
题目:合并表记录
输入描述:
先输入键值对的个数然后输入成对的index和value值,以空格隔开
输出描述:
输出合并后的键值对(多行)
输入例子:
40 10 21 23 4
输出例子:
0 31 23 4
import java.util.*;public class Main{ public static void main(String[] args){ Scanner in=new Scanner(System.in); while(in.hasNext()){ int n=in.nextInt(); TreeMap<Integer,Integer> map=new TreeMap(); for(int i=0;i<n;i++){ int key=in.nextInt(); int value=in.nextInt(); if(!map.containsKey(key)){ map.put(key,value); }else{ map.put(key,map.get(key)+value); } } Set<Map.Entry<Integer,Integer>> set=map.entrySet(); for(Map.Entry<Integer,Integer> entry: set){ System.out.println(entry.getKey()+" "+entry.getValue()); } } in.close(); }}这道题就是注意map视图的方法
Set<Map.Entry<Integer,Integer>> set=map.entrySet();
0 0
- 关于HashMap和TreeMap的一些注意点
- 关于HashMap的一些点、、、
- 关于宏定义的一些使用方法和注意点总结
- 关于HashTable,HashMap和TreeMap的几点心得
- 关于HashTable,HashMap和TreeMap的几点心得
- 关于HashTable,HashMap和TreeMap的几点心得
- 关于HashTable,HashMap和TreeMap的几点心得
- 关于HashTable,HashMap和TreeMap的几点心得
- 关于HashTable,HashMap和TreeMap的几点心得
- 关于HashTable,HashMap和TreeMap的几点心得
- HashMap 和TreeMap的比较?
- HashMap 和TreeMap的遍历
- HashMap 和 treeMap的区别
- HashMap和TreeMap的比较
- HashMap和TreeMap的区别
- HashMap和TreeMap的区别
- HashMap和TreeMap的区别
- Map的hashMap和TreeMap
- 迷宫求解java解决方案
- UVa OJ 11212 - Editing a Book
- python
- java源码:LinkedHashSet
- css中辅助类和响应式工具所有测试方法案例
- 关于HashMap和TreeMap的一些注意点
- Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载)
- 深入浅出ClassLoader
- 【题解】Leetcode.241.Different Ways to Add Parentheses
- oracle第二天学习内容
- js进阶学习之--面向对象(一)
- 网易测编程试题-CD收录歌曲计算
- scala进阶1-泛型
- 1602显示屏的使用