hashmap 和hashset不管是在面试还是在实际的代码编写中都还蛮经常见到了,但是直到现在我才对它进行了一个简单的应用,书上得来终觉浅,得知此事须躬行。先介绍hashmap,例子如下:
public class testHashMap {
public static void main(String[] args) {
testHash();
}
//public static String testHash(String remark){
public static void testHash(){
Map<String, String> replyMap=new HashMap<String, String>();
replyMap.put("can","well,you know I havn't seen yet.\n"+"So can you describe more?\n");
replyMap.put("speak","It is really a bad thing\n");
replyMap.put("jim","I don't know, may be a week or longer.");
Collection collValues=replyMap.values();
Iterator iter = collValues.iterator();
while(iter.hasNext()){
System.out.println("value "+iter.next());
}
Set skey=replyMap.keySet();
Iterator iterKey=skey.iterator();
while(iterKey.hasNext()){
System.out.println("Key "+iterKey.next());
}
}
运行的结果如下:
value I don't know, may be a week or longer.
value well,you know I havn't seen yet.
So can you describe more?
value It is really a bad thing
Key jim
Key can
Key speak
分析:
在用hashmap存储数据时,是一个key值对应一个value。
当要取出key时,要用到Set
Set skey=replyMap.keySet();
当要取出value时,要用到Collection
Collection collValues=replyMap.values();
不管是取出key 还是value,当要把它们全部取出来时,需要用到迭代器,然后用Iterator的 hasnext()方法将数据一个一个的读出来。
当hashmap中存入了相同key值的对象时,它采用覆盖的方式,最后一个相同key值的对象会存入map中
接着简单介绍下hashset
String[] wordArray=inputLine.split(" ");
HashSet<String> words=new HashSet<String>();
for(String word:wordArray){
words.add(word);
}
简单介绍下hashset,在hashset中只有key值,没有value值
然后往hashSet中添加数据是使用add方法