最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Map映射中獲取鍵值對(duì)的value值問題,報(bào)錯(cuò)的地方,為什么value是一個(gè)Collection類而不是Set或者其他的?

package com.imooc.collection;



import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Scanner;

import java.util.Set;


public class testMap {

/**

* 用來承裝學(xué)生類型對(duì)象

*/

public Map<String, Student> students;

public testMap(){

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

}

/**

* 添加學(xué)生,并判斷是否被占用

*/

public void testPut(){

Scanner sc=new Scanner(System.in);

int i=0;

while(i<3){

System.out.println("請(qǐng)輸入第"+i+"學(xué)生姓名ID:");

String id=sc.nextLine();

Student stu=students.get(id);

if(stu==null){

//提示輸入姓名

System.out.println("請(qǐng)輸入第"+i+"學(xué)生姓名");

String name=sc.nextLine();

Student st=new Student(id, name);

students.put(id,st);

System.out.println("成功添加學(xué)生:"+students.get(id).name);

i++;

}else{

System.out.println("您輸入的ID已被占用,請(qǐng)重新輸入!");

continue;

}

}

}

/**

* 測(cè)試Map的ketSet方法

*/

public void testKeySet(){

System.out.println("總共有"+students.size()+"個(gè)學(xué)生!");

//通過keySet方法,返回Map中的所有“鍵”的set集合

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

// 遍歷keySet,取得每一個(gè)鍵,在調(diào)用get方法取得每個(gè)鍵對(duì)應(yīng)的value

for(String stuid:keySet){

Student st=students.get(stuid);

if(st!=null)

System.out.println("學(xué)生:"+st.name);

}

}

/**

*?

* 測(cè)試刪除Map中的映射

* @param args

*/

public void testRemove(){

Scanner sc=new Scanner(System.in);

while(true){

System.out.println("請(qǐng)輸入要?jiǎng)h除的學(xué)生ID:");

String id=sc.nextLine();

//判斷id是否有對(duì)應(yīng)的學(xué)生對(duì)象

Student st=students.get(id);

if(st==null){

System.out.println("該id不存在");

continue;

}else{

students.remove(id);

System.out.println("成功刪除學(xué)生:"+st.name);

break;

}

}

}

/**

* 通過entrySet方法遍歷Map

* @param args

*/

public void testEntrySet(){

Set<Entry<String,Student>> entrySet=students.entrySet();

for(Entry<String,Student> entry:entrySet){

System.out.println("取得鍵"+entry.getKey());

System.out.println("對(duì)應(yīng)的值為"+entry.getValue().name);

}

}

/**

* 通過迭代器 分別遍歷students中的key和value

* @param args

*/

public void mapIterator(){

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

Iterator<String> it=set.iterator();

System.out.println();

System.out.println("key集合中的元素:");

while(it.hasNext()){

System.out.println(it.next());

}

Set<Student> col=students.values();

Collection<Student> coll=students.values();

Iterator<Student> iit=col.iterator();

System.out.println("Value集合中的元素:");

while(iit.hasNext()){

Student st=iit.next();

System.out.println("我是學(xué)生:"+st.id+",我的名字是:"+st.name);

}

}

public static void main(String[] args) {

testMap tm=new testMap();

tm.testPut();

tm.testKeySet();

tm.testRemove();

tm.testEntrySet();

tm.mapIterator();

}

}






正在回答

3 回答

value是一個(gè)Collection類,Collection包含了:Set、List和Queue。他可以是Set也可以是List亦可以是Queue。程序中的value是Student,未用泛型規(guī)定其為Set或List類,就是默認(rèn)的Collection類。當(dāng)然你也可以用泛型規(guī)定value是指定類型類。例如:

Map<String,List<String>>?map=?new?HashMap<String,?List<String>>();

?List<String>?list=?new?ArrayList<String>();


0 回復(fù) 有任何疑惑可以回復(fù)我~

value值是可以重復(fù)的,key值是不可重復(fù)的,所以只有key值集合屬于Set集合

0 回復(fù) 有任何疑惑可以回復(fù)我~

Set是一種不包含重復(fù)的元素的Collection

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

Map映射中獲取鍵值對(duì)的value值問題,報(bào)錯(cuò)的地方,為什么value是一個(gè)Collection類而不是Set或者其他的?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)