亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于Map無序問題

各位好!?
??????為什么我執行完Map測試后是有序的呢?代碼如下:
??????public?class?MapTest?{
??
	
	public?	HashMap<Integer,?student>students;
	
public?MapTest(){?
	this.students=new?HashMap<Integer,?student>();
}
public?void?testput(){
	Scanner?input=new?Scanner(System.in);
	
	int?i=0;
	while?(i<3){
		System.out.print("請輸入學生ID:");
		Integer?id=input.nextInt();?
		student?st=students.get(id);
		if?(st?==?null){
			System.out.print("請輸入?學生姓名:");
			String?name=input.next();
			student?newstudent=new?student(id,name);
			students.put(id,?newstudent);
			System.out.println("添加學生成功"+students.get(id).name);
			i++;
		}else{?
			System.out.print("該學生id被占用?");
			continue;
		}
		
	}
}????
????public?void?testkeyset(){?
???????Set<Integer>keSet=students.keySet();
???????System.out.println("總共有:"+students.size()+"個學生");
???????for?(Integer?stt:keSet){
????	??student?st=students.get(stt);
????	??if(st?!=null){
????		??System.out.println("學生:"+st.name);
????	??}
???????}
????}

這個是執行完的結果!

請輸入學生ID:1

請輸入 學生姓名:a

添加學生成功a

請輸入學生ID:2

請輸入 學生姓名:b

添加學生成功b

請輸入學生ID:3

請輸入 學生姓名:c

添加學生成功c

總共有:3個學生

學生:a

學生:b

學生:c


正在回答

3 回答

RT,如果是正常SET添加,輸出的內容是無序的,但是如果作為MAP的KeySet方法獲取到的SET,是有序的,而且無法使用add 和addAll,親測,我的JDK版本 1.7.2SE

1 回復 有任何疑惑可以回復我~

我執行了也是一樣,是有序輸出的……五個entry,有序輸出……試了好多遍了……JDK為1.8.0_60!

0 回復 有任何疑惑可以回復我~

Map的順序是隨機的,你多執行兩遍試試

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于Map無序問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號