java 中 遍历 hashmap的问题
输入bfc,现在输出的结果是f:1|b:1|c:1|。希望能够按照输入的顺序输出变成b:1|f:1|c:1importjava.util.*;publicclassTes...
输入bfc,现在输出的结果是f:1|b:1|c:1|。希望能够按照输入的顺序输出变成b:1|f:1|c:1
import java.util.*;
public class Test1 {
public static void main(String[] args){
String str="bfc";
System.out.println(new Test1().getCharNum(str));
}
public String getCharNum(String str){
char t1;
Integer in;
Map<Character,Integer> map=new HashMap<Character, Integer>();
for(int i=0;i<str.length();i++){
t1=str.charAt(i);
//System.out.print(t1);
in=map.get(t1);
if(in==null){
map.put(t1, 1);
}else{
map.put(t1, in+=1);
}
}
Set<Character> set=map.keySet();
StringBuilder sbr=new StringBuilder();
for(Character act:set){
in=map.get(act);
sbr.append(""+act+":"+in+"|");
}
return sbr.toString();
}
} 展开
import java.util.*;
public class Test1 {
public static void main(String[] args){
String str="bfc";
System.out.println(new Test1().getCharNum(str));
}
public String getCharNum(String str){
char t1;
Integer in;
Map<Character,Integer> map=new HashMap<Character, Integer>();
for(int i=0;i<str.length();i++){
t1=str.charAt(i);
//System.out.print(t1);
in=map.get(t1);
if(in==null){
map.put(t1, 1);
}else{
map.put(t1, in+=1);
}
}
Set<Character> set=map.keySet();
StringBuilder sbr=new StringBuilder();
for(Character act:set){
in=map.get(act);
sbr.append(""+act+":"+in+"|");
}
return sbr.toString();
}
} 展开
4个回答
展开全部
可以使用LinkedHashMap来解决迭代顺序与插入顺序一致的问题。
在你的代码中,用LinkedHashMap替换HashMap即可。
参看:
LinkedHashMap和HashMap的比较使用
http://www.cnblogs.com/hubingxu/archive/2012/02/21/2361281.html.
在你的代码中,用LinkedHashMap替换HashMap即可。
参看:
LinkedHashMap和HashMap的比较使用
http://www.cnblogs.com/hubingxu/archive/2012/02/21/2361281.html.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Map在put的时候,它的键值是一个Set——这意味着它是不重复而且乱序的,所以你不能通过获得Map的keySet然后得到原来put元素时的顺序。如果你想要的得到put的顺序,第一建议是使用其他集合,比如List;第二就是使用LinkedHashMap,它可以保存记录的插入顺序,遍历时先得到的记录是先插入的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
n.setTau(tau);
你set 0.8一次再get 就是0.8
tau = tau*0.8;为0.64
再set一次再get就是 0.64
估计你的节点是同一个。。。
希望对你能有所帮助。
你set 0.8一次再get 就是0.8
tau = tau*0.8;为0.64
再set一次再get就是 0.64
估计你的节点是同一个。。。
希望对你能有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用TreeMap,即可保证顺序,不过如果key值是自定义类型,需要实现Comparable接口
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询