即時工作在一個多類的任務,我必須添加一個課程,根據是否存在先決條件程序。 即時存儲我的課程內的程序類使用哈希表。 (以爲我會派上用場)然而,即時通訊存在一些麻煩,以確保這些前置資源存在。 這裏是一些代碼,香港專業教育學院目前竟能我如何使用hashmap鍵到一個字符串數組?
public boolean checkForCourseFeasiblity(AbstractCourse c) throws ProgramException
{
AbstractCourse[] tempArray = new AbstractCourse[0];
tempArray= courses.keySet().toArray(tempArray);
String[] preReqsArray = new String[1];
preReqsArray = c.getPreReqs();
//gets all course values and stores them in tempArray
for(int i = 0; i < preReqsArray.length; i++)
{
if(courses.containsKey(preReqsArray[i]))
{
continue;
}
else if (!courses.containsKey(preReqsArray[i]))
{
throw new ProgramException("preReqs do not exist"); //?
}
}
return true;
}
確定,所以基本上,tempArray被存儲課程的HashMap裏面所有的按鍵組,我需要比較他們都與preReqs(這是一個字符串數組)。如果preReqs存在於鍵集內,則添加課程,如果他們不添加課程。如果課程通過我另外添加了一個例外,則返回true。請記住我的鍵集是Strings,例如一個鍵集值可以是「編程1」,並且課程所需的先決條件可以是「編程1」。如果是這種情況,請添加課程,因爲preset課程存在於密鑰集中。 我相信我的錯誤是當我用c.getPreReqs初始化mypreReqsArray(注意:getPreReqs是一個返回類型爲String []的getter)。 如果有人能夠幫助我解決我的困境,那將會非常棒。我嘗試儘可能地提供,我覺得我一直在過去3小時在圈子裏走動:( - 謝謝你
'//獲取tempArray' 所有課程的值,並將它們存儲你是什麼 –
如果初始化映射和數組,我們可以追蹤它並查看結果,我檢查了if(courses.containsKey(preReqsArray [i])),如果使用tempArray,它似乎聲明它,然後不真的做任何事情? )'和這一行是好的,請初始化他們的一些測試數據來追蹤錯誤。 – Heidarzadeh