为了账号安全,请及时绑定邮箱和手机立即绑定

请问为什么我的MAP遍历输出是有序的??求解答

public class MapTest {
	public Map<String,Students> stu;
	Scanner input =  new Scanner(System.in);
	/*
	 * MapTest构造函数;
	 */
	public MapTest(){
		this.stu = new HashMap<String,Students>();
	}
	/*
	 * 添加方法(给MAP添加学生对象)
	 * 输入ID,如果ID不存在,则继续添加name
	 * 如果ID存在,提示此ID已存在
	 */
	public void Put(){
		int i = 1;
		System.out.println("添加方法运行了,请添加3个学生!");
		while(i != 0 ){
			System.out.println("请输入学生ID:");
			String id = input.next();	
			if(stu.get(id)==null){//get方法是得到对应ID的value;
				System.out.println("请输入学生name: ");
				String name = input.next();
				Students st = new Students(id,name);//将id和name属性给学生对象;
				stu.put(id, st);//添加ID和学生对象;
			}else{
				System.out.println("该ID已被占用,请重新输入:");
			}
			System.out.println("继续添加请输入1,停止添加请输入0");
			i = input.nextInt();
		}
		
	}
	
	/*
	 * 2种方法遍历MAP
	 */
	public void forEach(){
		System.out.println("学生库中有"+stu.size()+"个学生:");
//		for(String sr:stu.keySet()){//keySet返回的是key集,遍历id从而得到student;
//			System.out.println(sr+":"+stu.get(sr).name);
//		}
		for(Students ss:stu.values()){//values返回的是value集,遍历value直接得到student;
			System.out.println(ss.id+":"+ss.name);
		}
		
	}
	/*
	 * args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MapTest mt = new MapTest();
		mt.Put();
		mt.forEach();
	}

}

http://img1.sycdn.imooc.com//570606040001f35803320660.jpg

正在回答

1 回答

刚运行了你的代码,代码是没有问题的。结果是无序输出的。你多试两次就可以看出了。可能你这次输出的正好是按照你的那个输入顺序来的,纯属巧合。可以去买彩票啦~

0 回复 有任何疑惑可以回复我~
#1

VisenYang 提问者

谢谢,,,但是我弄了很多次了,结果都是图上那样
2016-04-07 回复 有任何疑惑可以回复我~
#2

VisenYang 提问者

好了好了,,,,我弄了很多很多输出,终于表现出无序了,,,谢谢了
2016-04-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问为什么我的MAP遍历输出是有序的??求解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信