為什么老師是無序的而我的結果是有序的
package com.collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class Maptest {
?? ? /**
???? * 用來承裝學生類型的對象的
???? */
?? ?
?? ?public Map<String,Student>students;
?? ?/**
?? ? * 在構造器中初始化students屬性
?? ? * @param args
?? ? */
?? ?public Maptest(){
?? ??? ?this.students=new HashMap<String,Student>();
?? ?}
?? ?/**
?? ? * 測試添加:輸入學生ID,判斷是否被占用
?? ? * 若未被占用,則輸入姓名,創建一個新的學生對象,并添加到students中去
?? ? * @param args
?? ? */
?? ?public void testput(){
?? ??? ?Scanner console=new Scanner(System.in);
?? ??? ?int i=0;
?? ??? ?while(i<3){
?? ??? ??? ?System.out.println("請輸入學生ID:");
?? ??? ??? ?String ID=console.next();
?? ??? ??? ?//判斷ID是否被占用
?? ??? ??? ?Student st=students.get(ID);
?? ??? ??? ?if(st==null){
?? ??? ??? ??? ?System.out.println("請輸入學生的姓名:");
?? ??? ??? ??? ?String name=console.next();
?? ??? ??? ??? ?//創建新的學生對象
?? ??? ??? ??? ?Student newstudent=new Student(ID,name);
?? ??? ??? ??? ?//通過調用students的put方法,添加ID——學生映射
?? ??? ??? ??? ?students.put(ID,newstudent);
?? ??? ??? ??? ?System.out.println("成功添加學生:"+students.get(ID).name);
?? ??? ??? ??? ?i++;
?? ??? ??? ??? ?
?? ??? ??? ?}
?? ??? ??? ?else{
?? ??? ??? ??? ?System.out.println("該學生ID被占用");
?? ??? ??? ??? ?continue;
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?/**
?? ? * 測試Map的Keyst方法
?? ? * @param args
?? ? */
?? ?public void testKeyset(){
?? ??? ?//通過Keyset方法,返回Map中的所有鍵的Set集合
?? ??? ?Set<String>keySet=students.keySet();
?? ??? ?
?? ??? ?//取得students的容量
?? ??? ?System.out.println("總共有"+students.size()+"個學生!");
?? ??? ?//遍歷keySet,取得每一個鍵,再調用get方法取得每一個鍵對應的Value
?? ??? ?for (String stuID : keySet) {
?? ??? ??? ?Student stu=students.get(stuID);
?? ??? ??? ?if(stu!=null)
?? ??? ??? ?System.out.println("學生:"+stu.name);?? ?
?? ??? ?}
?? ??? ?
?? ?}
?? ?
?? ?public static void main(String[] args) {
?? ??? ?// TODO Auto-generated method stub
?????? Maptest sy=new Maptest();
?????? sy.testput();
?????? sy.testKeyset();
?? ??? ?
?? ?}
}
2018-04-30
這里的有序和無序不是我們理解中的那樣,而是在不同平臺下運行輸出的結果一樣。例如如果是有序的那么無論在windows下還是linux下運行輸出的結果都是一樣的,同理無序。
2018-01-29
多運行幾次也是這樣嗎