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