import java.util.HashMap;
import java.util.Map.Entry;
public class TestString {
public static void main(String[] args) {
System.gc();
String str = "deepak";
int length = str.length();
System.out.println("str " + str + " length " + length);
HashMap<Character,Integer> map = new HashMap<Character,Integer>();
for(int i=0; i<length; i++){
char ch = str.charAt(i);
if(map.containsKey(ch)){
Integer val = map.get(ch);
map.put(ch, val+1);
}else{
map.put(ch, 1);
}
}
for (Entry<Character, Integer> entry : map.entrySet())
{
int hashCode = entry.hashCode();
char key = entry.getKey();
// int hash = hash();
System.out.println("hashcode " + hashCode + " hashcode of key>> " + entry.getKey().hashCode() + " key : " + key);
}
System.out.println(">>> " + map);
}
}
输出:
STR迪帕克长度6爪哇 - 哈希映射retreival序列的密钥哈希码113哈希码>> 112键:P
哈希码96的密钥哈希码>> 97 key:a
hashcode密钥的哈希码>> 100 key:d
哈希码103哈希码密钥>> 101键:电子
哈希码106哈希码的密钥>> 107关键字:k
>>>
{p = 1时,A = 1,d = 1,E = 2,K = 1}
谁能帮我了解从程序和输出两件事情:通过地图对象印刷
的数据,如何决定在内部序列? 例如。它是打印序列p,a,d,e,k。
entry.hashcode()和entry.key()。hashcode()有什么区别? 请参考输出解释差异。
您的条目的内部顺序不受HashMap的保证。他们可以在任何其他地方。看看[这里](http://stackoverflow.com/questions/683518/java-class-that-implements-map-and-keeps-insertion-order)。 – GAlexMES
区别在[Java API](https://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html#hashCode()) – GAlexMES
中有说明程序开始处的'System.gc()'? – Holger