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

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

來吧,有問題了,大家共同進步

package start;


import java.util.HashMap;

import java.util.HashSet;

import java.util.Map;

import java.util.Map.Entry;

import java.util.Scanner;

import java.util.Set;


public class TestSet {


Map<String,Student> mt = new HashMap<String,Student>();

Scanner Input = new Scanner(System.in);

public void addElement(){

int i = 0;

while(i < 3){

System.out.println("請輸入學生ID:");

String id = Input.next();

if(mt.get(id) == null){

System.out.println("請輸入學生姓名:");

String name = Input.next();

Student newstudent = new Student(id,name);

System.out.println("學生信息成功存入檔案!");

mt.put(id, newstudent);

i++;

}else{

System.out.println("學生ID已經被占用??!");

continue;

}

?}

}

public void getElement(){

Set<String> set = new HashSet();

set = mt.keySet();

for (String string : set) {

Student test = mt.get(string);

if(test != null)

System.out.println("學生姓名為:"+test.Name);

}

}

public void Remove(){

System.out.println("請輸入你要刪除的學生ID:");

String Id = Input.next();

Set<String> set = new HashSet();

set = mt.keySet();

for ( String key : set) {

if(Id.equals(key))

mt.remove(key);

}

}

public void EntrySet(){

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

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

System.out.println(entry.getValue().Name);

}

}

public static void main(String[] args) {

TestSet te = new TestSet();

te.addElement();

te.getElement();

te.Remove();

te.EntrySet();

}

}



這是問題


請輸入學生ID:

1

請輸入學生姓名:

1

學生信息成功存入檔案!

請輸入學生ID:

2

請輸入學生姓名:

2

學生信息成功存入檔案!

請輸入學生ID:

3

請輸入學生姓名:

3

學生信息成功存入檔案!

學生姓名為:3

學生姓名為:2

學生姓名為:1

請輸入你要刪除的學生ID:

3

Exception in thread "main" java.util.ConcurrentModificationException

at java.util.HashMap$HashIterator.nextEntry(Unknown Source)

at java.util.HashMap$KeyIterator.next(Unknown Source)

at start.TestSet.Remove(TestSet.java:46)

at start.TestSet.main(TestSet.java:64)

????我想知道為什么會出現這種錯誤呢???

正在回答

3 回答

專門去網上搜了下,答案挺高深的,對于我這個菜鳥都算不上的,真心看不懂。只是給你個地址,去看看吧。

http://bbs.csdn.net/topics/370149418

【如果我對集合添加刪除一共操作了10次,此時modCount為10,??獲取迭代器的時候expectedModCount也為10,??迭代期間會去 checkForComodification()!??只要在next或者remove之前有對集合操作的動作導致modCount發(fā)生了改變,?就會 拋那個并發(fā)修改異常!】

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

怒放的生命012 提問者

非常感謝!
2016-08-20 回復 有任何疑惑可以回復我~

問題出在Remove方法中的if判斷語句,用==不能用equals方法

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

public void Remove()這個方法顯示是錯誤的根源


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

舉報

0/150
提交
取消

來吧,有問題了,大家共同進步

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

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

幫助反饋 APP下載

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

公眾號

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