현재 프로그램 내에 선행 조건이 존재하는지 여부에 따라 수업을 추가해야하는 여러 클래스 지정에서 일하고 있습니다. 해시 맵을 사용하여 프로그램 클래스 내에 내 코스를 저장하고 있습니다. (내가 편리하게 될 것이라고 생각했다.) 그러나, 나는이 preReq가 존재한다는 것을 확신하는데 약간의 문제가있다. 여기에 현재 때문에 기본적으로 확인 문자열 배열에 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이 과정의 해시 맵 내부의 모든 키 세트를 저장하는 몇 가지 코드 필자 내가 (문자열의 배열입니다)에있는 PreReqs으로 그들 모두를 비교해야합니다. preReqs가 키 집합 내에 있으면 코스를 추가하지 않으면 코스를 추가하십시오. 코스가 예외를 통해 예외를 추가하면 true를 반환합니다. 내 키 집합은 Strings입니다. 키 집합 값은 "Programming1"일 수 있고 코스에 필요한 필수 항목은 "프로그래밍 1"일 수 있습니다. 이 경우에는 추가하여 전제 조건 코스가 키 집합에 있으므로 코스를 추가하십시오. 나는 c.getPreReqs (참고 : getPreReqs는 반환 유형 String [])가있는 getter 인 mypreReqsArray를 초기화 할 때 내 오류가 있다고 생각합니다. 누군가 내 딜레마로 나를 도울 수 있다면 정말 좋을 것입니다. 가능한 한 많이 제공하려고했는데 지난 3 시간 동안 서클에서 돌아 다니는 느낌이 들었습니다. ( - 고마워요.
'당신이 무엇을 tempArray' 의 모든 과정 값과 저장합니다 //입니다 도착 tempArray를 사용하면 실제로 선언 한 것처럼 보이며 실제로 아무 것도하지 않는 것 같습니다. –
지도와 배열을 초기화하면 추적하고 결과를 볼 수 있습니다. if (courses.containsKey (preReqsArray [i])))'그리고이 줄 괜찮 으면 버그를 추적 할 수있는 몇 가지 테스트 데이터를 초기화하십시오. – Heidarzadeh