A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邱成 中级黑马   /  2012-9-9 23:34  /  1263 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邱成 于 2012-9-10 07:47 编辑

import java.util.Map;
import java.util.HashMap;
import java.util.Set;
import java.util.Collection;
import java.util.Iterator;
class aaa{
public static void main(String args[]){
  HashMap aa=new HashMap();
  aa.put("1","java");
  aa.put("2","VB");
  aa.put("3","VC++");
                //取出K和V的collection
  Set k1=aa.keySet();
  System.out.println("Key:");
  Iterator aaaa=k1.iterator();
  while(aaaa.hasNext()){
   System.out.println(aaaa.next());
  }
  //取出与V相对应的K
  Collection v=aa.values();
  System.out.println("Values:");
  Iterator bbbb=v.iterator();
  while(bbbb.hasNext()){
   System.out.println(bbbb.next());
  }
  //一一对应
  Set k3=aa.entrySet();
  Iterator cccc=k3.iterator();
  while(cccc.hasNext()){
   Map.Entry mp=(Map.Entry)cccc.next();
   System.out.println(mp.getKey()+":"+mp.getValue());
  }
}
}
上述代码打印出的结果为什么Key的顺序是3 2 1而不是1 2 3.

3 个回复

倒序浏览
hashmap 并不能保证存入顺序 就是取出顺序。它是根据hashcode值存的,想改变,也可以覆盖hashcode代码。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马