黑马程序员技术交流社区
标题:
[已解决]HashMap取出元素时,能否控制顺序
[打印本页]
作者:
李知伦
时间:
2012-8-20 18:09
标题:
[已解决]HashMap取出元素时,能否控制顺序
本帖最后由 李知伦 于 2012-8-22 17:41 编辑
HashMap取出元素时,能否控制顺序
比如取字母出现次数,能否按照,原始字符串的排列顺序,升序,降序等
import java.util.HashMap;
import java.util.Map;
public class getCharTimes {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "sdfasdewefqmcoad";
String character = "";
int frequency = 0;
Map<String, Integer> map = new HashMap<String, Integer>();
for (int i=0; i < str.length(); i++) {
String key = str.substring(i, i+1);
if (map.containsKey(key)) {
map.put(key, map.get(key)+1);
}
else {
map.put(key, 1);
}
}
for (Map.Entry<String, Integer> m : map.entrySet()) {
//取得最终的Key,value
character = m.getKey();
frequency = m.getValue();
System.out.println(character + "(" + frequency + ")");
}
}
}
作者:
唐杨老师
时间:
2012-8-20 18:22
要重写的HashCode和equals方法的吧
作者:
杜鹏云
时间:
2012-8-20 18:24
写一个比较器实现Compareable接口或者Comparetor接口,然后将此比较器作为参数传入集合的构造函数中。
作者:
李知伦
时间:
2012-8-22 15:30
顶下贴,有能代码实现的吗?
作者:
灵感
时间:
2012-8-22 17:08
本帖最后由 严学韦 于 2012-8-22 17:14 编辑
/*
需求:将字符串按照出现的次数进行排序
*/
import java.util.*;
class MapDemo
{
public static void main(String[] args)
{
String s= charCount("sdfasdewefqmcoad");
System.out.println(s);
}
public static String charCount(String str)
{
char[] chs = str.toCharArray();//将字符串转换成字符数组。因为要对每一个字母进行操作。
//定义一个map集合,因为打印结果的字母有顺序,所以使用treemap集合。
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
int count = 0;
for(int x=0; x<chs.length; x++)//遍历字符数组
{
if(!(chs[x]>='a' && chs[x]<='z' || chs[x]>='A' && chs[x]<='Z'))
continue;
Integer value = tm.get(chs[x]);
if(value!=null)
count = value;
count++;
tm.put(chs[x],count);//往集合中存储字符和数字
count = 0;
}
StringBuilder sb = new StringBuilder();
Set<Map.Entry<Character,Integer>> entrySet = tm.entrySet();
Iterator<Map.Entry<Character,Integer>> it = entrySet.iterator();
while(it.hasNext())
{
Map.Entry<Character,Integer> me = it.next();
Character ch = me.getKey();
Integer value = me.getValue();
sb.append(ch+"("+value+")");
}
return sb.toString();//将map集合中的数据变成指定的字符串形式返回
}
}
运行结果.jpg
(5.49 KB, 下载次数: 81)
下载附件
2012-8-22 17:11 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2