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

打印顺序一致

为什么我的程序打印顺序和添加的顺序一致?

正在回答

3 回答

我的实验结果是输出顺序跟输入顺序相反

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

(以下代码打印顺序和ID顺序一致。如果我输入1. Tom 2.Jack 3. xiaoming, 输出结果也是 Tom, Jack, xiaoming )

package com.imooc.collection_map;


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属性

*/

public MapTest(){

this.students = new HashMap<String, Student>();

}

/**

* 测试添加: 输入学生ID, 判断是否被占用

* 若未被占用, 则输入姓名, 创建新学生对象

* 并且添加到students中

*/

public void testPut(){

//创建一个Scanner对象, 用来获取输入的学生ID和姓名

Scanner scan = new Scanner(System.in);

int i = 0;

while(i<3){

System.out.println("请输入学生ID: ");

String ID = scan.next();

//判断该ID是否被占用

Student st = students.get(ID);

if (st == null){

//提示输入学生姓名

System.out.println("请输入学生姓名");

String name = scan.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;

}

}

scan.close();

}

/**

* 测试Map的keySet方法

*/

public void testKeySet(){

//通过keySet方法, 返回Map中所有"键"的Set集合

Set<String> ks = students.keySet();

//取得students的容量

System.out.println();

System.out.println("总共有:" + ks.size() + "个学生!");

//遍历keySet, 取得每一个键, 再调用get方法取得每个键对应的value

for (String stuId: ks){

Student st = students.get(stuId);

if (st != null)

System.out.println("学生: " + st.name);

}

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

MapTest mt = new MapTest();

mt.testPut();

mt.testKeySet();

}


}


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

木有代码,这让人胡思乱想!

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

SungJoe 提问者

额,忘记放了!
2016-01-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

打印顺序一致

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